zoukankan      html  css  js  c++  java
  • python

    类的内置 attr 方法

    #类的内置 attr 方法:
    # __getattr__
    # __setattr__
    # __delattr__
    
    # __getattr__
    #到调用一个类不存在数参数时,将执行__getattr__内置方法
    class test():
        def __init__(self,num):
            self.num = num
        def __getattr__(self, item):
            return "getattr 执行~~~~"
        def __delattr__(self, item):
            print( "delattr执行.....")
        def __setattr__(self, key, value):
            super().__setattr__(key,value)
            print("setattr执行.....")
    t1 = test('dsadsa')
    
    # __getattr__
    # #类中存在的属性访问!
    print(t1.num)
    # #类中不存在的属性访问,执行__getattr__
    print(t1.xxxx)
    
    # # __delattr__
    # #在删除一个类属性的时候,执行delattr操作(即使不存在的数值,也会执行)
    # 本质是:
    #    def __delattr__(self,item):
    #         self.__dict__.pop(item)
    del t1.num
    del t1.xxx
    
    # __setattr__
    # 在类被实例化以及设置新的属性参数的时候将会执行
    # 本质是:
    #    def __setattr__(self, key, value):
    #         self.__dict__[key] = value
    # 将属性添加到类的__dict__字典内
    # 若这个方法被修改后,将影响__dict__添加属性
    t2 = test("sssssss")
    print(t2.__dict__)
    t1.num = "2333"
  • 相关阅读:
    Linux运维工作总结教训
    java-GC
    java设计模式-原形模式
    java-桥接模式
    java-装饰者模式
    java-正则表达式
    java设计模式-建造者模式
    Python 条件与循环
    Python 集合、字典、运算符
    Python 字符串拼接、格式化输出、深浅复制
  • 原文地址:https://www.cnblogs.com/Anec/p/9779546.html
Copyright © 2011-2022 走看看