Как сложить класс A с классом B в Python?

«Как сложить класс A с классом B в Python?» — вопрос из категории Python, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Python для сложения объектов классов нужно реализовать специальный метод __add__. Этот метод определяет поведение оператора +. Пример:

class A:
    def __init__(self, value):
        self.value = value

    def __add__(self, other):
        if isinstance(other, B):
            return self.value + other.value
        return NotImplemented

class B:
    def __init__(self, value):
        self.value = value

a = A(10)
b = B(20)
result = a + b  # 30
print(result)

Ключевые моменты:

  1. __add__ должен возвращать новый объект или примитивное значение.
  2. NotImplemented используется, если операция не поддерживается для данного типа второго операнда.
  3. Для обратной операции (B + A) нужно реализовать метод __radd__ в классе B.
  4. Можно также реализовать __iadd__ для оператора +=.