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
    

      

  • 相关阅读:
    table标签去除默认边框
    自定义矢量图
    ClickJacking(点击劫持)
    css 字体不撑开默认块级元素问题
    meate 标签使用介绍
    intellij IDEA15 设置背景颜色
    JS 浮点数运算丢失精度解决方案
    IDEA 滚动条跳动问题
    JS
    异步变同步
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10062401.html
Copyright © 2011-2022 走看看