有类属性和实例属性。当你说
class base : derived_val = 1
您正在定义一个类属性。
derived_val成为的关键
base.__dict__。
t2=base()print(base.__dict__)# {'derived_val': 1, '__module__': '__main__', '__doc__': None}print(t2.__dict__)# {}当您说
t2.derived_valPython尝试在中找到“
derived_val”时
t2.__dict__。由于它不存在,因此将检查的
'derived_val'任何基
t2类中是否存在键。
print(t2.derived_val)print(t2.__dict__)# 1# {}但是,当您将值分配给时
t2.derived_val,您现在要向添加实例属性
t2。一
derived_val键加入
t2.__dict__。
t2.derived_val = t2.derived_val+1print(t2.derived_val)print(t2.__dict__)# 2# {'derived_val': 2}请注意,此时有两个
derived_val属性,但是只有实例属性易于访问。只能通过引用
base.derived_val或直接访问class
dict来访问class属性
base.__dict__。



