Назад к вопросам
Аэрофлот
Junior — Middle
65
Объясните значение оператора yield в Python и как он используется в генераторах.
Компании, где спрашивали
АО К-Технологии
Ответ от нейросети
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 позволяет создавать ленивые итераторы, экономя ресурсы и упрощая код для последовательной обработки данных.