class A:
def __init__(self, text):
self.printStats()
A.printStats(text)
def printStats(self):
print(self)
a = A("Hello")
这将打印:
<A object at 0x7f47e2f08ac8>
Hello
为什么这个 (
A.printStats(text)
) 可以执行?我理解正在发生的事情(self引用text),但我不明白为什么。
self.instance_method()
相当于Class.instance_method(self)
。如果你的方法实际上并没有使用实例状态(例如访问self
的属性),那么你可以传入任何东西。 - jonrsharpetext
(在示例中为“Hello”)作为printStats
的self
参数传递,这真的不是你应该做的。但这就是为什么你看到打印了“Hello”的原因。 - Tagc