python property函数

property函数不是一个真正的函数,它实际上是一个拥有很多特殊方法的类.在python的文档中property的定义为:
class property([fget[, fset[, fdel[, doc]]]]),它返回一个新式类的属性,fget是返回属性值的函数,fset是设置属性值的函数.fdel是一个删除属性值函数.doc为属性产生文档字符串.
property的一个典型应用时用来定义一个被管理属性

class C(object):
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, "I'm the 'x' property.")

如果c是C的实例,c.x将会调用getter,c.x = value将会调用setter,del c.x会调用deleter.如果给了doc参数,那么doc是该属性的文档字符串,否则,property将会拷贝fget函数的文档字符串(如果存在)

这里写图片描述

由测试结果,完全符合上述说法.

把property()函数当做装饰器使用很容易创建一个只读属性.
看下面的例子:

class Parrot(object):
    def __init__(self):
        self.__x = 10000
    @property
    def x(self):
        return self.__x

程序执行结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值