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。

  • 相关阅读:
    extJS 创建类
    apache配置虚拟主机
    pdo简单操作
    php上传sae路径问题
    把php上传sae问题要使用IO
    struts2上传的问题
    Could not open Hibernate Session for transaction;
    Convention插件
    struts2支持的结果类型
    struts2动态方法
  • 原文地址:https://www.cnblogs.com/keye/p/10929224.html
Copyright © 2011-2022 走看看