zoukankan      html  css  js  c++  java
  • Python property()函数

    property():返回新式类属性。

    class property ( [fget [, fset [, fdel [, doc] ] ] ] )

    • fget:获取属性值
    • fset:设置属性值
    • fdel:删除属性值
    • doc:属性描述信息

    实例:

    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参数,将成为这个属性值的docstring,否则property函数就会复制fget函数的docstring(如果有的话)。

    property函数用作装饰器可以很方便的创建只读属性

    class Parrot(object):
        def __init__(self):
            self._voltage = 100000
     
        @property
        def voltage(self):
            """Get the current voltage."""
            return self._voltage

    代码将 voltage() 方法转化成同名只读属性的 getter 方法。

    property 的getter, setter 和 deleter方法同样可以用作装饰器:

    class C(object):
        def __init__(self):
            self._x = None
     
        @property
        def x(self):
            """I'm the 'x' property."""
            return self._x
     
        @x.setter
        def x(self, value):
            self._x = value
     
        @x.deleter
        def x(self):
            del self._x

    这个代码和第一个例子完全相同,但注意这些额外函数名和 property 下一样,例如这里的 x。

  • 相关阅读:
    php判断值是否为空
    MyQQ
    java动态定义二维数组问题
    回归CSDN
    字体工具栏
    传说中的服务器
    sql server 2000 出现不能执行查询,因为一些文件丢失或未注册
    chm文件打不开
    Cmd不能运行,窗口闪一下就消失
    isql病毒
  • 原文地址:https://www.cnblogs.com/keye/p/10929224.html
Copyright © 2011-2022 走看看