如何解决Python如何从类函数中获取自我?
我可以从类函数中获取 self 吗?例如:
class abc:
def __init__(self,name):
self.name = name
def printname(self):
print(self.name)
x = abc("test").printname()
我想从 abc("test")
获取原始类 obj x
而不使用 return self 或首先定义 x = abc("test")
,这可能吗?
解决方法
简短的回答是否定的。
更长的答案:
-
printname
不是“类函数”,而是一个实例方法。 class 方法是将类作为第一个参数的方法。大多数方法都是实例方法;它们将self
(类的特定实例)作为第一个参数。如果这确实是一个类方法,就不会有“自我”与之关联。 -
您所说的“类对象”是类
abc
的实例。abc
本身就是一个对象(Python 中的一切都是一个对象,包括类定义),但这与您通过调用abc("test")
获得的实例不同。 -
任何时候您想要获取特定函数调用的本地值并使其可供调用者使用(包括其参数),您都需要
return
它。从技术上讲,还有其他涉及在调用者范围内改变状态的技巧,但这些技巧不适用于您的示例。如果您以行printname
结束return self
,那么执行x = abc("test").printname()
将导致实例被分配给x
。 -
在你的例子中,调用者是构造实例的人,所以简单地写这个也可以:
x = abc("test")
x.printname()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。