【发布时间】:2011-08-16 02:27:12
【问题描述】:
我知道属性是一个描述符,但是有没有具体的例子说明什么时候使用描述符类可能更有利,pythonic,或者比在一个上使用@property 提供一些好处方法函数?
【问题讨论】:
-
为什么属性是描述符?
标签: python descriptor
我知道属性是一个描述符,但是有没有具体的例子说明什么时候使用描述符类可能更有利,pythonic,或者比在一个上使用@property 提供一些好处方法函数?
【问题讨论】:
标签: python descriptor
更好的封装性和可重用性:描述符类可以在实例化时设置自定义属性。有时以这种方式限制数据很有用,而不必担心它会被描述符的所有者设置或覆盖。
【讨论】:
@property做同样的事情,不是吗?
让我引用 EuroPython 2012 精彩视频"Discovering Descriptors":
如何在描述符和属性之间进行选择:
另外,请注意,您可以将__slots__ 与描述符一起使用。
【讨论】:
@property 不允许您同时定义专用的 setter 和 getter 方法。 如果 getter 方法“足够好”,则使用 @property 否则您需要 property()。
【讨论】:
@my_method_name.setter这样的东西?另外,这如何适用于自定义描述符类的概念?