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

Зачем нужны магические (dunder) методы в генераторе

Магические методы (dunder) в генераторах позволяют кастомизировать поведение объектов при использовании встроенных операций Python. Например, __iter__ и __next__ определяют итерацию, а __enter__ и __exit__ — контекстные менеджеры.

Пример с генератором:

python
class Countdown:
    def __init__(self, start):
        self.start = start

    def __iter__(self):
        n = self.start
        while n > 0:
            yield n
            n -= 1

# Использование
for num in Countdown(5):
    print(num)  # 5, 4, 3, 2, 1

Здесь __iter__ превращает класс в итерируемый объект, а yield делает его генератором. Без магических методов такая интеграция с циклами for была бы невозможна.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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