Встречается на собеседованиях • сегодня

Что такое магические методы в Python

Магические методы (или dunder-методы, от double underscore) в Python — это специальные методы, которые начинаются и заканчиваются двумя подчёркиваниями (__метод__). Они позволяют реализовать определенное поведение объектов в различных контекстах и переопределять операции.

Основная идея:

Эти методы вызываются неявно в ответ на использование встроенных операций и функций (например, len(), +, in, for и т.д.).

Категории магических методов:

1. Создание и инициализация объекта

  • __new__(cls[, ...]) — создаёт новый экземпляр (вызывается до __init__).
  • __init__(self[, ...]) — инициализирует созданный объект (конструктор).
  • __del__(self) — деструктор, вызывается при удалении объекта.

2. Строковое представление

  • __str__(self) — для неформального строкового представления (str(), print()).
  • __repr__(self) — для формального представления (вывод в консоли, repr()).

3. Арифметические операции

  • __add__(self, other)+
  • __sub__(self, other)-
  • __mul__(self, other)*

4. Сравнение объектов

  • __eq__(self, other)==
  • __lt__(self, other)<
  • __le__(self, other)<=

5. Работа с коллекциями

  • __len__(self)len()
  • __getitem__(self, key) — доступ по индексу или ключу: obj[key]
  • __setitem__(self, key, value) — установка значения: obj[key] = value
  • __contains__(self, item) — проверка принадлежности: item in obj

6. Вызов объектов как функций

  • __call__(self[, ...]) — позволяет вызывать объект как функцию.

7. Менеджеры контекста (with)

  • __enter__(self) — вход в контекст.
  • __exit__(self, exc_type, exc_val, exc_tb)— выход из контекста.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы