为什么属性必须是Python中的类属性?
最近我一直在学习Python中的托管属性,并且使用属性和描述符的常见主题是,它们必须被分配为类属性。 但我无处可以找到解释为什么,特别是为什么他们不能被指定为实例属性。 所以我的问题实际上有两个部分:
这是因为Python尝试解析属性的方式:
Voila ;-)
编辑
我只是发现这个链接,它比我更好地解释它。
另一个很好的例子
为什么属性/描述符实例必须是类属性?
他们不必是,他们只是。 这是一个设计决策,可能有比我想象的更多的支持理由(简化实现,将类与对象分离)。
为什么属性/描述符实例不能成为实例属性?
他们可能是,你总是可以覆盖__getattribute__
来调用实例上访问的任何描述符,或者如果你愿意,可以完全禁止它们。
请记住,Python不会阻止你这样做并不意味着这是一个好主意。
链接地址: http://www.djcxy.com/p/38815.html上一篇: Why do properties have to be class attributes in Python?
下一篇: How does {...object, property: value} work with spread syntax?