我已成功覆盖__getattr__
方法,以便允许复杂的行为。但是我仍然希望允许某些__builtin__
函数是默认的。例如,我使用__getattr__
来处理__add__
,__sub__
,__mul__
等。但是,__iadd__
,__isub__
,{{ 1}}等尝试使用__imul__
方法并抛出错误。我也可以定义他们的行为,但我认为允许这些方法作为默认运行会更好。
底线:我想允许__getattr__
过滤它处理的属性,以及它允许默认运行的属性。
答案 0 :(得分:0)
回答了我自己的问题。我使用if语句来处理属性组,然后作为最后的手段,使用return getattr(my_cls_name, attr)
来允许任何其他内置函数正常运行。所以现在当它意识到没有__iadd__
处理程序时,它会使用我的__add__
代替。与其他运营商相同。