我试图将函数从C移植到Python并使其易于调试,我更喜欢它执行相同的CPU字大小限制操作,所以我可以比较中间结果.换句话说,我想要像:
a = UnsignedBoundedInt(32, 399999)
b = UnsignedBoundedInt(32, 399999)
print(a*b) # prints 1085410049 (159999200001 % 2**32)
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么,以便所有操作(包括按位移位)都能像C一样工作?
说有:
class A(B):
...
Run Code Online (Sandbox Code Playgroud)
这里B可能是object和...是不是:
@classmethod # or @staticmethod
def c(cls): print 'Hello from c!'
Run Code Online (Sandbox Code Playgroud)
我不得不做什么叫A.c()不会触发AttributeError?
换句话说,我知道可以在运行时手动将类方法添加到类中.但是有可能自动这样做,比如每次缺少类方法时都会创建一些虚拟方法吗?
换句话说,只有我可以A.__dict__用我的dict 替换处理__getitem__- 但A.__dict__似乎不可写......