Python中的类变量和实例变量的关系,就是各论各的
在self.count没有指定的情况下,每个对象中的self.count的初始化的值和Dog.count的初始化的值是一样的
id():
在 Python 中,id() 函数返回对象的唯一标识符(整数)。该标识符代表当前实现中对象的内存地址。Python 中的每个对象在创建时都会被分配一个唯一标识符,并且该标识符通常在对象的整个生命周期中保持不变
class Dog:
count=100
def __init__(self) -> None:
pass
def counting(self,num):
for i in range(0,num):
# self.count的初始化是100,但是self.count和Dog.count是不同的变量,内存地址不一样
self.count+=1
Dog.count+=1
if __name__=="__main__":
dog1=Dog()
dog2=Dog()
dog1.counting(11)
dog2.counting(20)
print("Dog.count==",Dog.count)
print("dog1.count==",dog1.count)
print("dog2.count==",dog2.count)
print("内存标识Dog.count",id(Dog.count))
print("内存标识dog1.count",id(dog1.count))
print("内存标识dog2.count",id(dog2.count))
Dog.count== 102
dog1.count== 111
dog2.count== 121
内存标识Dog.count 2468631762448
内存标识dog1.count 2468631762736
内存标识dog2.count 2468631763056