Я пытаюсь понять, почему я не могу использовать iadd (+ =) внутри класса на самообъекте.Невозможно использовать iadd в классе python
Например, если я определить класс с iadd и функции, которая использует iadd (Адда):
class A(object):
def __init__(self, n):
self.n = n
def __iadd__(self, other):
return A(self.n+other.n)
def addA(self, other):
self+=other
a1 = A(9)
a2 = A(8)
Если я использую функцию Адда, a1, кажется, не будут затронуты:
a1.addA(a2)
print a1.n
>>> 9
Однако, если я использую iadd нормально, это работает нормально:
a1+=a2
print a1.n
>>> 17
может кто-нибудь сказать мне, как я могу использовать iadd с в определении класса.
(Надеюсь, это не имеет значения, но я спрашиваю об этом, поскольку я пытаюсь создать оболочку для объекта maya.OpenMaya.MMatrix. Я хотел бы добавить функцию для применения произвольного преобразования. использовать функцию iadd внутри определения моего класса, поскольку у меня нет прямого доступа к данным, хранящимся в родительском классе, но я могу манипулировать им с помощью iadd.)