Почему в Python используются ключевые слова yield и как они работают в генераторах?
Answer from AI
sobes.tech AI
Ключевое слово yield в Python используется для создания генераторов — специальных функций, которые возвращают последовательность значений по одному за раз, приостанавливая своё выполнение между вызовами. В отличие от обычной функции, которая возвращает значение и завершает работу, генератор с yield сохраняет своё состояние, позволяя эффективно работать с большими или потенциально бесконечными последовательностями без необходимости хранить все элементы в памяти.
Когда функция встречает yield, она возвращает текущее значение вызывающему коду, но при этом сохраняет своё состояние (локальные переменные, позицию в коде). При следующем вызове генератора выполнение продолжается сразу после yield.
Пример генератора, который возвращает числа от 0 до 4:
def count_up_to_five():
for i in range(5):
yield i
for number in count_up_to_five():
print(number)
Это выведет числа от 0 до 4 по одному, не создавая сразу весь список в памяти.