Как сложить два объекта используя __add__

Есть класс square и метод который возвращает сумму. Как с помощью метода add получить f + s

class A:

def __init__(self, a, b):
    self.a = a
    self.b = b


def result(self):
    return self.a + self.b 




f = A(2,5)
s = A(5,13)
print(f.result())

print(s.result())
print(f + s)

Ответы (2 шт):

Автор решения: gil9red

Добавить магический метод __add__ и в нем сложить результаты текущего объекта и того, что будет справа

Например так:

class A:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def result(self):
        return self.a + self.b

    def __add__(self, other: 'A'):
        return self.result() + other.result()


f = A(2, 5)
s = A(5, 13)
print(f.result())  # 7
print(s.result())  # 18
print(f + s)       # 25
→ Ссылка
Автор решения: Andrey

f и s - это объекты. А Вам нужно сложить выводы result, так?

f.result() + s.result()

Либо добавить в сам класс обработку оператора сложения, как уже ответил @gil9red.

→ Ссылка