该类Two
具有一个实例方法name()
。因此,请Two.name
参考此方法,以下代码可以正常工作:
Polly = Two()
Two.name(Polly)
但是,在中__init__()
,您可以name
通过将其设置为字符串来覆盖它,因此,每次创建的新实例时Two
,该name
属性都将引用字符串而不是函数。这就是以下失败的原因:
Polly = Two() # Polly.name is Now the string 'Polly'
Polly.name() # this is equivalent to 'Polly'()
只要确保您为方法和实例变量使用单独的变量名即可。