我的试验如下所示,但没有奏效。
class MyNum:
def __init__(self , n):
self.n = n
class MyNum2(MyNum):
def __coerce__(self , y):
return self, y
def __radd__(self, y):
print 'radd called'
return self.n + y.n
我在 python 命令行上输入:
>>> x = MyNum(20)
>>> y = MyNum2(12)
>>> x+y
结果:
>>> Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 y+x 文件“”,第 3 行,在 __coerce__ 返回self.y AttributeError:MyNum 实例没有属性“y”
当我使用__coerce__()
没有类派生的方法时,结果
x+y
等于radd called // 32
。但是,对于派生类,会发生错误。
请给我一些帮助,农历新年快乐,提前谢谢你。