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
    

      

  • 相关阅读:
    高级开发必须理解的Java中SPI机制
    希尔排序--python
    SpringContextAware使用详解
    visio professional 2013 密钥
    二分查找--python
    [Oracle]单行字符函数
    [Oracle]sqlplus调整列宽
    [Oracle]MacOS sqlplus上下选择命令
    [Oracle]开启SCOTT账户
    [Oracle]Macos 安装Oracle Client 11g 11.2.0.4
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10062401.html
Copyright © 2011-2022 走看看