Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道一个属性是一个描述符,但是有没有具体的例子说明什么时候使用描述符类可能更有利,pythonic,或者比@property在方法函数上使用提供一些好处?
@property
更好的封装性和可重用性:描述符类可以在实例化时设置自定义属性。有时以这种方式限制数据很有用,而不必担心它在描述符的所有者上被设置或覆盖。
让我引用 EuroPython 2012 的精彩视频“发现描述符”:
如何在描述符和属性之间进行选择:
另外,请注意,您可以__slots__与描述符一起使用。
__slots__
@property 不允许您同时定义专用的 setter 和 getter 方法。如果 getter 方法“足够好”,则使用 @property,否则您需要 property()。