直接上代码
class A(object):
count = 0 # 直接在类名下方定义一个类属性
def __init__(self, name):
self.name = name
A.count += 1 # 类被每调用一次,该属性数值加1
demo1 = A("张三")
demo2 = A("李四")
print(A.count) # 直接从类中获取属性 因为类被调用了两次,所以输出 2
print(demo1.count) # 使用对象获取类属性(不推荐使用此方法)
# 此时python解释器会向上查找属性
# 所以会找到类的属性 count 所以输出 2
demo1.count = 30 # 给对象设置一个属性值
print(A.count) # 给对象属性赋值,不会影响类属性的值 所以还是输出 2
print(demo1.count) # 因为重新给对象的属性赋值
# 在该对象中有count属性
# 所以不会向上查找调用属性输出 30