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。

  • 相关阅读:
    ASP.NET中使用附文本框插件
    HttpModules配置事项
    ASP.NET页面缓冲
    在ASP.NET中备份数据库以及还原(不成熟)
    python List使用
    SSH登录详解
    Vue.js使用-http请求
    Vue.js使用-组件示例(实现数据的CRUD)
    Vue.js使用-组件(下篇)
    Vue.js使用-组件(上篇)
  • 原文地址:https://www.cnblogs.com/keye/p/10929224.html
Copyright © 2011-2022 走看看