|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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('哦! 这个变量没法删除')
复制代码
是我的认知逻辑出错了吗? |
|