Какие знаешь магические методы

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

Ответ

Магические методы в Python — это методы с двойными подчёркиваниями (__method__), которые вызываются автоматически при определённых операциях.

Основные:

  • __init__ — инициализация объекта.
  • __str__ / __repr__ — строковое представление.
  • __eq__, __lt__ и др. — сравнение объектов.
  • __len__ — длина объекта.
  • __getitem__, __setitem__ — доступ по индексу/ключу.
  • __iter__, __next__ — итерация.
  • __enter__, __exit__ — контекстный менеджер.

Пример:

class Book:
    def __init__(self, title):
        self.title = title

    def __str__(self):
        return f"Book: {self.title}"

book = Book("Python")
print(book)  # Book: Python