Я новичок в Python, поэтому заранее извиняюсь, если это глупый вопрос.
Для назначения мне нужно перегрузить расширенные арифметические назначения (+ =, - =, / =, * =, ** =,% =) для класса myInt. Я проверил документацию по Python, и вот что я придумал:
def __iadd__(self, other):
if isinstance(other, myInt):
self.a += other.a
elif type(other) == int:
self.a += other
else:
raise Exception("invalid argument")
self.a и other.a ссылаются на int, хранящийся в каждом экземпляре класса. Я попытался проверить это следующим образом, но каждый раз я получаю «Нет» вместо ожидаемого значения 5:
c = myInt(2)
b = myInt(3)
c += b
print c
Может кто-нибудь сказать мне, почему это происходит? Заранее спасибо.