2017-08-01 33 views
0

我已经成功地重写了__getattr__方法,以允许复杂的行为。不过,我仍然希望允许某些__builtin__函数为默认值。例如,我已经使用__getattr__来处理__add__,__sub__,__mul__等。但是,__iadd__,__isub__,__imul__等正试图使用​​__getattr__方法,并引发错误。我也可以定义他们的行为,但我认为允许这些方法默认运行会更好。python:有选择地覆盖__getattr__

底线:我想允许__getattr__过滤它处理的属性,以及它允许​​默认运行的属性。

+0

所以,你有一个自定义'__getattr__'方法的类?一些简单的示例代码和预期的结果将会很有帮助,因为它看起来并不完全清楚你要找什么。 –

回答

0

回答了我自己的问题。我使用if语句来处理属性组,然后作为最后的手段,使用return getattr(my_cls_name, attr)来允许任何其他内置函数正常运行。所以现在当它意识到没有__iadd__处理程序时,它会使用我的__add__来代替。与其他运营商相同。