我知道属性是一个描述符,但是有没有特定的例子说明使用描述符类可能更有利,pythonic,或者提供一些优于使用{{1在方法函数上?
答案 0 :(得分:8)
更好的封装和可重用性:描述符类可以在实例化时设置自定义属性。有时以这种方式保持数据受限是有用的,而不必担心它会在描述符的所有者上被设置或覆盖。
答案 1 :(得分:3)
让我引用EuroPython 2012精彩视频"Discovering Descriptors":
如何在描述符和属性之间进行选择:
另外,请注意,您可以将__slots__
与描述符一起使用。
答案 2 :(得分:0)
@property不允许您同时定义专用的setter和getter方法。 如果一个getter方法足够好"然后使用@property,否则你需要property()。