1
class bambino(object):
counter = 7
def __init__(self):
print("bambino.counter is self.counter ?", bambino.counter is self.counter)
self.counter += 1
print("bambino.counter is self.counter ?", bambino.counter is self.counter)
bambi1 = bambino()
print ("bambi1.counter:", bambi1.counter)
print ("bambino.counter:", bambino.counter)
打印:Python实例属性从class属性获取初始值并具有相同的名称?
bambino.counter is self.counter ? True
bambino.counter is self.counter ? False
bambi1.counter: 8
bambino.counter: 7
我明白做self.counter += 1
计数器成为实例的属性没有的类。
但为什么bambi1.counter
把它的从bambino.counter
初始值?
可能是值得一提的是,该行为是可变对象不同,当他们刚刚修改,而不是重新分配。 – ThiefMaster
它本身并不是可变性,而是一些类型具有'+ ='重载,以改变对象的位置。 –
啊我甚至没有想到'+ ='情况,但更一般的情况下,像'富= {}'的类,然后'self.foo [..] = ..' – ThiefMaster