类属性的get与set方法,常用。其方法短小,如果属性多了,其类拥有的空间就复杂的许多,且看下面简洁的空间:
- class Parrot:
- def __init__(self, x = 0):
- self.__voltage = x
- def voltage():
- def fget(self):
- return self.__voltage
- def fset(self, x):
- self.__voltage = x
- return locals()
- voltage = property(**voltage())
- if __name__ == '__main__':
- p = Parrot(1)
- print dir(p)
- print p.voltage
- p.voltage = 0
- print p.voltage
- print 'end___'
再看看运行之后的输出:
- ['_Parrot__voltage', '__doc__', '__init__', '__module__', 'voltage']
- 1
- 0
- end___
这样的做法更简洁,且使得类空间也简洁些许。