ООП 17 Магические методы __add__, __mul__, __sub__ и __truediv__

YOUTUBE · 01.12.2025 09:47

Ключевые темы и таймкоды

Введение в магические методы

0:00
  • Обсуждение магических методов в объектно-ориентированном программировании.
  • Магические методы выполняют базовые математические операции: сложение, вычитание, умножение и деление.
  • Пример класса BankAccount с атрибутами name и баланс.

Проблема с операциями над объектами

0:58
  • Попытка сложить объект BankAccount с целым числом приводит к ошибке.
  • По умолчанию классы не поддерживают операции сложения с другими типами данных.
  • Необходимость реализации магического метода для сложения.

Реализация метода add

1:55
  • Создание магического метода add для сложения.
  • Метод принимает два аргумента: self и other.
  • Проверка типа other и добавление его к балансу self.

Проверка типов и исключение

3:51
  • Добавление проверки типа other на объект класса BankAccount.
  • Исключение для других типов данных, например, строк.
  • Переопределение класса для реализации метода add.

Поведение Python при сложении

4:49
  • Объяснение поведения Python при сложении объектов.
  • Реализация метода radd для случая, когда объект стоит справа.
  • Проверка работы методов add и radd.

Реализация метода mul

7:43
  • Создание метода mul для умножения.
  • Различие в поведении для объектов класса BankAccount и чисел.
  • Пример умножения на строку и конкатенации имён.

Возврат нового объекта

9:39
  • Идея возврата нового объекта при сложении.
  • Реализация метода __str__ для отображения объектов.
  • Пример создания нового объекта с увеличенным балансом.

Заключение

11:34
  • Демонстрация работы метода add с возвратом нового объекта.
  • Подведение итогов и прощание.