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的时候运行
    通过字符串删除的时候执行
    
  • 相关阅读:
    Redis(二)
    Redis
    Nginx
    Linux的环境配置
    深入mysql
    SpringBoot入门
    Thymeleaf入门
    Mybatis之resultMap
    Mybatis入门
    使用第三方实现微信登录
  • 原文地址:https://www.cnblogs.com/xiayuhao/p/9544448.html
Copyright © 2011-2022 走看看