python property用法

it2022-05-05  227

python property用法

参考

http://openhome.cc/Gossip/Python/Property.html http://pyiner.com/2014/03/09/Python-property.html

在Python中property()是一个内建函数,创建并返回一个property对象。函数的定义如下。 property(fget=None, fset=None, fdel=None, doc=None) fget是获取属性的值的函数,fset是设置属性值的函数,fdel是删除属性的函数,doc是一个字符串(like a comment).从实现来看,这些参数都是可选的,所以可以向下面这样简单的创建一个property对象。 property() <property object at 0x0000000003239B38> property有三个方法getter(), setter()和delete() 来指定fget, fset和fdel。

一般写法

class Ball: def __init__(self, radius): if radius <= 0: raise ValueError('必須是正數') self.__radius = radius def getRadius(self): return self.__radius def setRadius(self, radius): self.__radius = radius def delRadius(self): del self.__radius radius = property(getRadius, setRadius, delRadius, 'radius 特性說明') #output ball = Ball(1.23) print ball.radius ball.radius = 2.31 print ball.radius

装饰器写法

class Ball: def __init__(self, radius): if radius <= 0: raise ValueError('必須是正數') self.__radius = radius @property def radius(self): return self.__radius @radius.setter def radius(self, radius): self.__radius = radius @radius.deleter def radius(self): del self.__radius posted on 2015-08-26 11:58 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/4759973.html


最新回复(0)