property 类方法变属性

Posted kongzhagen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

  

 

以上是关于property 类方法变属性的主要内容,如果未能解决你的问题,请参考以下文章

python之路之前没搞明白4面向对象(封装)

python内置装饰器@property

面向对象三大特性——封装(含property)

Python高级property属性详解

python 中的@property

eclipse properties 文件中文变Unicode码