>>> class C(object):
... def __init__(self):
... self.__x=None
... def getx(self):
... print 'getx'
... return self.__x
... def setx(self, v):
... print 'setx'
... self.__x=v
... def delx(self):
... print 'delx'
... del self.__x
... x=property(getx, setx, delx)
...
注:x=property()的x不能与self定义的属性同名,否则会在实例化C时无限递归调用setx.
如上方式可以作为模板使用。或采用
<pre name="code" class="python">class C(object):
def __init__(self):
self.__x=None
@property
def x(self):
return self.__x
@x.setter
def x(self, v):
self.__x = v
@x.deleter
def x(self):
del self.__x<span style="font-family: Arial, Helvetica, sans-serif;"> </span>