python - 类的内置 attr 方法

时间:2021-09-13 14:46:52

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