【发布时间】:2011-06-21 18:41:02
【问题描述】:
我的试用版如下所示,但没有成功。
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。但是,对于派生类,会发生错误。
请给我一些帮助,农历新年快乐,提前谢谢你。
【问题讨论】:
标签: python inheritance derived-class coerce