zoukankan      html  css  js  c++  java
  • property类的使用

    1、property类

      property() 函数的作用是在新式类中返回属性值。

      语法

      以下是 property() 方法的语法:

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

      参数

    • fget -- 获取属性值的函数
    • fset -- 设置属性值的函数
    • fdel -- 删除属性值函数
    • doc -- 属性描述信息

      返回值

      举例:

    class Foo(object):
        debug = False
    
        def get(self):
            return self.debug
    
        def set(self,value):
            self.debug = value
    
        d = property(get,set)
        del get
        del set
    
    obj = Foo()
    # 输出:False 
    print(obj.d)
    obj.d = True
    # 输出:True
    print(obj.d)
    

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

    class Foo(object):
        debug = False
    
        @property
        def data(self):
            return self.debug
    
        @data.setter
        def data(self,value):
            self.debug = value
    
        @data.deleter
        def data(self):
            del self.debug
    
    obj = Foo()
    # 输出:False
    print(obj.data)
    obj.data = True
    # 输出:True
    print(obj.data)
    

     3、Flask中源码

    class Flask(_PackageBoundObject):
        def _get_debug(self):
            return self.config['DEBUG']
    
        def _set_debug(self, value):
            self.config['DEBUG'] = value
            self.jinja_env.auto_reload = self.templates_auto_reload
    		
        debug = property(_get_debug, _set_debug)
        del _get_debug, _set_debug
    

      

  • 相关阅读:
    第四章:活动图
    makefile
    C语言中,头文件和源文件的关系(转)
    第三章:用例图
    第二章:建模基础
    shell编程:if语句
    shell编程:for循环
    shell基础:数值运算与运算符
    shell基础:预定义变量
    图片异步加载的几种实现方案
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10062401.html
Copyright © 2011-2022 走看看