|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 minghan 于 2020-2-25 17:19 编辑
第一次在本论坛求助,多谢各位大佬不吝赐教
在学习python的魔法方法时,创建了一个类,重写了__getattr__方法,代码如下
- class AttrAccessClass:
- def __getattr__(self, name):
- print('__getattr__ ' + str(name))
- attrAccess = AttrAccessClass()
- print(getattr(attrAccess, 'no', 'noAttr'))
复制代码 结果发现重写__getattr__后,getattr方法的默认值不起作用
请问,若要使得默认值起作用,该如何修改呢?
先谢过各位大佬!!!
调用父类的 __getattr__
- class AttrAccessClass:
- def __getattr__(self, name):
- print('__getattr__ ' + str(name))
- return super().__getattribute__(name)
- attrAccess = AttrAccessClass()
- print(getattr(attrAccess, 'no', 'noAttr'))
复制代码
|
|