类变量地址共存
class Person:
move = True # 这是类变量
def __init__(self , name , age):
self.name = name # 这是实例变量
self.age = age # 这是实例变量
p1 = Person('张三' , 20)
p2 = Person('李四' , 30)
# 通过id()函数查询move内存地址
print(id(p1.move)) # 输出结果为:1622667424
print(id(p2.move)) # 输出结果为:1622667424
实例变量内存地址不共存
class Dog:
kind = 'canine' # class variable shared by all instances
def __init__(self, name, kind):
self.name = name # instance variable unique to each instance
print(name)
self.kind = kind # self.kind是一个实例变量
dog1 = Dog('哈士奇', 'dog1')
print(dog1.kind) # dog1(本质上打印的是实例变量)
print('dog1_id_kind =', id(dog1.kind))# 输出结果为:2144372328688
dog2 = Dog('阿拉斯加', 'dog2')
print(dog2.kind) #dog2(本质上打印的是实例变量)
print('dog2_id_kind =', id(dog2.kind)) # 输出结果为:2144375232048
# 这是一个类变量
print('dog_id = ', id(Dog.kind)) # 输出结果为:2144372807216