python - 类的内置 attr 方法

类的内置 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"

 

posted @ 2018-10-12 17:44  Anec  阅读(2646)  评论(0编辑  收藏  举报