我试图了解 @property 装饰器的工作原理。
这里我使用方法 y 作为字段 x 的属性,
在attribute-self.x有了属性之后,是不是意味着我们不能显式地设置值了。。
我认为最后一条语句-> cx = 2 一旦你在变量上设置了属性方法就不起作用了?
class C(object):
def __init__(self):
self.x = 0
self.list = [1,2,3,4,10]
@property
def y(self):
print 'getting'
self.x = sum(self.list)
return self.x
@y.setter
def y(self, value):
print 'setting'
self.x = value
if __name__ == '__main__':
c = C()
print 'Value of c.y=',c.y
print '-'*80
c.y = 50
print '-'*80
print c.y
print '-'*80
if c.y >5:
print 'Hi'