您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python class属性

python class属性

有类属性和实例属性。当你说

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+1
print(t2.derived_val)
print(t2.__dict__)
# 2
# {'derived_val': 2}

请注意,此时有两个derived_val属性,但是只有实例属性易于访问。只能通过引用base.derived_val或直接访问class dict来访问class属性base.__dict__

python 2022/1/1 18:34:58 有232人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶