python 里 的@property标签,可以使python的方法可以当做属性来访问,类似java对私有变量的操作方法getXXX()、setXXX()。注:方法名要相同,且类的父类中必须包含object。
看如下代码(python2.7):
class C(object):
def __init__(self):
self.__x = 1000
@property
def x(self):
print "property"
return self.__x
@x.setter
def x(self,value):
print "setter"
self.__x = value
@x.getter
def x(self):
print "getter"
return self.__x
@x.deleter
def x(self):
print "deleter"
del self.__x
if __name__ == '__main__':
c = C()
print c.x
c.x = 12
del c.x
执行结果:
getter
1000
setter
deleter
property
1000
setter
deleter