Sobes.tech
Back to questions
Junior — Middle
66

Объясните значение оператора yield в Python и как он используется в генераторах.

Companies where asked
АэрофлотАэрофлот
АО К-Технологии

Answer from AI

sobes.tech AI

Оператор yield в Python используется внутри функций для создания генераторов — специальных итераторов, которые возвращают значения по одному за раз, сохраняя своё состояние между вызовами.

Когда функция с yield вызывается, она не выполняется полностью, а возвращает генератор. При каждом вызове метода __next__() или использовании в цикле for выполнение функции продолжается с места последнего yield, возвращая следующее значение.

Это позволяет эффективно работать с большими или бесконечными последовательностями, не загружая всю коллекцию в память.

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

def count_up_to(max_value):
    count = 1
    while count <= max_value:
        yield count
        count += 1

for number in count_up_to(5):
    print(number)

Вывод:

1
2
3
4
5

Таким образом, yield позволяет создавать ленивые итераторы, экономя ресурсы и упрощая код для последовательной обработки данных.