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_val
Python尝试在中找到“ 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+1
print(t2.derived_val)
print(t2.__dict__)
# 2
# {'derived_val': 2}
请注意,此时有两个derived_val
属性,但是只有实例属性易于访问。只能通过引用base.derived_val
或直接访问class dict来访问class属性base.__dict__
。