'''
property 完成了类似java中getter,setter的功能,甚至还包括了del属性的功能,具体使用方法两种
如下面的例子所示
'''
class Cody:
def __init__(self):
self._x = None
def getX(self):
return self._x
def setX(self,x):
self._x = x
def delX(self):
del self._x
x = property(getX,setX,delX,"test Property ")
class Tom:
def __init__(self,y = 0):
self._y = y
@property
def y(self):
return self._y
@y.setter
def y(self,y):
self._y = y
@y.deleter
def y(self):
del self._y
if __name__ == "__main__":
cody = Cody()
cody.x = 10;
print(cody.x)
del cody.x
print(cody.x) # AttributeError: 'Cody' object has no attribute '_x'
以上代码引自:http://www.cnblogs.com/cody1988/archive/2013/05/09/3069107.html
看了上面的代码一直不明白这样引入propery的意义何在,完全是多余啊,一句x=None与那一堆代码没有任何区别啊。仔细想想如果真的是有好处的话,应该是get、set、del函数的好处,它们是点(.)访问符的自动映射,可以实现除简单的赋值、取值之外更多的操作。