property 类方法变属性

函数作用: 在新式类中返回属性值。

 

语法 :

class property([fget[, fset[, fdel[, doc]]]])
  • fget -- 获取属性值的函数
  • fset -- 设置属性值的函数
  • fdel -- 删除属性值函数
  • doc -- 属性描述信息

示例:

class C:
    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 am the x Property !")

注意:
如果c是C的实例化。 
c.x 将触发getter
c.x=value 将触发setter
del c.x 将触发 deleter
如果给定 doc 参数,其将成为这个属性值的 docstring,否则 property 函数就会复制 fget 函数的 docstring(如果有的话)。

  

创建属性的更简便方法, 将property函数用作装饰器。

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

    @property
    def x(self):
        """创建属性x, 当执行c.x时调用"""
        return self._x

    @x.setter
    def x(self, value):
        """创建属性x的setter功能", 当执行c.x=value时调用"""
        self._x = value

    @x.deleter
    def x(self):
        """创建属性x的deleter功能, 当执行del c.x时调用"""
        del self._x

  

 

posted on 2020-06-06 11:42  孔扎根  阅读(181)  评论(0编辑  收藏  举报

导航