【发布时间】:2011-09-12 08:10:12
【问题描述】:
我对如何在 Python 中使用 @property 很感兴趣。我已经阅读了 python 文档和那里的示例,在我看来,这只是一个玩具代码:
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
我不知道包装带有属性装饰器的_x 可以获得什么好处。为什么不直接实现:
class C(object):
def __init__(self):
self.x = None
我认为,属性功能在某些情况下可能很有用。但当?有人可以给我一些真实的例子吗?
【问题讨论】:
-
这是我找到的关于属性装饰器[click here的最好和最干净的解释]
-
@Anubis 在您提供的链接的最后一个示例中,设置 c = Celsius(-500) 没有抛出任何 ValueError,我认为这没有达到预期的结果。
-
同意@Anubis。它在这里正确实现:python-course.eu/python3_properties.php
标签: python oop properties python-decorators