0
我用Python 2.5的,我想知道如何可以改变下一个代码当平台的python2.5或python2.6的为什么我的代码运行错误,它是关于“@property”
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
a=C()
print a.x#error
感谢
感谢,亚历克斯,我认为财产必须是在你的榜样
3个参数,但是,我已经看到了代码与“财产”只用1个argumennt,为什么,能行
class SortingMiddleware(object):
def process_request(self, request):
request.__class__.field = property(get_field)
request.__class__.direction = property(get_direction)
感谢,亚历克斯,我认为物业必须在你的榜样3个参数 但是,我已经看到了代码与'property'只使用1个参数,为什么它可以工作 – zjm1126 2009-12-27 04:11:18
当你希望该属性是只读的时候,只需要一个参数(或者等同于装饰器)就可以调用2.5中的'property'(只有一个getter:没有安装者,没有删除者)。 – 2009-12-27 04:32:12
'property'函数有4个参数(getter,setter和deleter和文档)。最后一个参数与本次讨论无关,所以我们会忽略它。另外三个默认为None,这意味着该属性不能被“获取”,“设置”或“删除”。 (如果参数是None,则认为该行为不可行)。当你用一个参数调用它时,只有“getter”方法(即第一个参数)被指定,所以它变成了'只读'属性,而另外两个操作(set和delete)是不允许的。 – 2009-12-27 17:44:39