显然正确的方法是编写所有特殊方法(这可能很痛苦)。
否则,请为您尝试
__getattr__
def __getattr__(self, x): r = getattr(self.int, x) if callable(r): def f(*args, **kwargs): if args and isinstance(args[0], u32): args = (args[0].int, ) + args[1:] ret = r(*args, **kwargs) if ret is NotImplemented: return ret if x in ['__str__', '__repr__', '__cmp__', '__index__']: return ret ret %= MODULO return u32(ret) return f return r
正如Martijn所指出的,这仅适用于老式类。请参阅他的答案以获取适用于新型类的方法。



