Моя пробная версия была похожа на приведенную ниже, но она не сработала.
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 (most recent call last):
File "", line 1, in
y+x
File "", line 3, in __coerce__
return self.y
AttributeError: MyNum instance has no attribute 'y'
Когда я использую метод __coerce__()
без получения класса, результат
x+y
равно radd called // 32
. Однако в производном классе возникает ошибка.
Пожалуйста, помогите мне, и счастливого лунного нового года, заранее спасибо.