zoukankan      html  css  js  c++  java
  • property

    将对象的方法伪装成属性

    property与__setattr___setiterm_

    class Foo:
        @property
        def AAA(self):
            print("get 的时候运行")
    
        @AAA.setter
        def AAA(self,value):
            print("set 的时候运行")
        @AAA.deleter
        def AAA(self):
            print("delet 的时候运行")
    
    a = Foo()
    a.AAA
    a.AAA = "summer"
    del a.AAA
    
    
    get 的时候运行
    set 的时候运行
    delet 的时候运行
    
    class Bar():
        def __getattr__(self, item):
            print("get 不到的时候运行")
    
        def __setattr__(self, key, value):
            print("通过属性set的时候运行")
    
        def __delattr__(self, item):
            print("通过属性delete的时候运行")
    b = Bar()
    b.name
    b.name = "summer"
    del b.name
    
    
    get 不到的时候运行
    通过属性set的时候运行
    通过属性delete的时候运行
    
    class F:
        def __getitem__(self, item):
            print("通过字符串get的时候运行")
    
        def __setitem__(self, key, value):
            print("通过字符串set的时候运行")
    
        def __delitem__(self, key):
            print("通过字符串删除的时候执行")
    c = F()
    c["name"]
    c["name"] = "summer"
    del c["name"]
    
    通过字符串get的时候运行
    通过字符串set的时候运行
    通过字符串删除的时候执行
    
  • 相关阅读:
    灭霸-个人冲刺第四天
    单词统计
    第十周总结
    灭霸-个人冲刺第三天
    07-代码大全阅读笔记之一
    灭霸-个人冲刺第二天
    灭霸-个人冲刺第一天
    06-梦断代码阅读笔记之三
    团队项目-用户场景分析
    第九周总结
  • 原文地址:https://www.cnblogs.com/xiayuhao/p/9544448.html
Copyright © 2011-2022 走看看