马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
看了魔法方法的视频, 认识到, 在设定属性值的方法里设定属性值会陷入无线递归,如下例:class Test:
def __setattr__(self, name, value):
self.name = value + 1 #会无限递归
那么为啥描述符这课里的同样套路不会无线递归啊? 已经蒙圈了。class MyDes:
def __init__(self,value , name ):
self.value = value
self.name = name
def __get__(self, instance, owner):
print(f'正在获取变量:{self.name}')
return self.value
def __set__(self, instance, value):
print(f'正在修改变量:{self.name}')
self.value = value #为什么不会无限递归
def __delete__(self, instance):
print('哦! 这个变量没法删除')
是我的认知逻辑出错了吗? |