@property的可以将python定义的函数当做“属性访问”,更加友好,但是有时候setter和getter也是需要的,需要视情况而定
- def getx(self):
- return self.__x
- def setx(self,value):
- self.__x=value
- def delx(self):
- del self.__x
- x=property(getx,setx,delx,'')
- class Parrot:
- def __init__(self):
- self._voltage = 100000
- @property
- def voltage(self):
- """Get the current voltage."""
- return self._voltage
- if __name__ == "__main__":
- # instance
- p = Parrot()
- # similarly invoke "getter" via @property
- print p.voltage
- # update, similarly invoke "setter"
- p.voltage = 12
这里函数voltage直接当做属性直接用p实例调用,不用geter和setter即可