|
6鱼币
小甲鱼的代码中输入c =C(),在输入c.x得到的是2 ,如果在得__getattribute__中加上return super().__getattribute__(name)得到的是2 ,1
小甲鱼的代码
- class C:
- def __getattr__(self, name):
- print(1)
- def __getattribute__(self, name):
- print(2)
- def __setattr__(self, name, value):
- print(3)
- def __delattr__(self, name):
- print(4)
复制代码
我说的代码
- class C:
- def __getattr__(self, name):
- print(1)
- def __getattribute__(self, name):
- print('2')
- return super().__getattribute__(name)
- def __setattr__(self, name, value):
- print(3)
- def __delattr__(self, name):
- print(4)
-
复制代码
因为 c.x 属性不存在,所以会调用 __getattr__()。
|
最佳答案
查看完整内容
因为 c.x 属性不存在,所以会调用 __getattr__()。
|