@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即可