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"

 

转载于:https://www.cnblogs.com/Anec/p/9779546.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值