Per*_*nce 1 python attributes class
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)
Run Code Online (Sandbox Code Playgroud)
打印:
bambino.counter is self.counter ? True
bambino.counter is self.counter ? False
bambi1.counter: 8
bambino.counter: 7
Run Code Online (Sandbox Code Playgroud)
我明白通过做self.counter += 1 反击成为不属于类的实例的属性.
但为什么bambi1.counter从它的初始价值bambino.counter?
如果在对象中找不到属性,则在层次结构中查找更高的属性,首先在其类中查找,然后,如果未找到,则在超类中查找.
self.counter += 1相当于self.counter = self.counter + 1.所以要分配bambi1.counter,Python首先需要获取值bambi1.counter.由于bambi1最初没有counter,python没有找到它,必须在它的类中查找它.
PS:请将您的班级名称大写.