我编写了一个Python类,但是setter似乎没有用。
来自https://docs.python.org/2/library/functions.html#property:
属性对象具有可用的getter,setter和deleter方法 装饰器,用相应的属性创建属性的副本 访问器功能设置为装饰功能。这是最好的 用一个例子解释:
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
我的(示例)课程:
# -*- coding: utf-8 -*-
class PropertyTest:
def __init__(self):
self.prop_ = 5
@property
def prop(self):
print "Getting prop plus one"
return self.prop_ + 1
@prop.setter
def prop(self, propValue):
print "Assigning prop to " + propValue
self.prop_ = propValue
t = PropertyTest()
print t.prop
t.prop = 10
print t.prop
预期产出:
获得道具加一个
6
将道具分配给10
获得道具加一个
11
但我得到的是:
获得道具加一个
6
10
我做错了什么?