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
    

      

  • 相关阅读:
    堆排序优先级队列
    贪心算法装载问题
    贪心算法最小生成树
    贪心算法活动安排
    回文质数
    堆排序算法
    递归算法排列问题
    排序算法
    贪心算法Dijkstra
    贪心算法哈夫曼编码
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10062401.html
Copyright © 2011-2022 走看看