Встречается на собеседованиях • сегодня
Что такое магические методы в 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)— выход из контекста.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы