yield
yield
- это ключевое слово в Python, которое используется для создания генераторов. Когда функция содержит оператор yield
, она становится генераторной функцией, и yield
указывает на точку, в которой выполнение функции должно приостановиться, а текущее состояние функции сохраняется. Это позволяет лениво генерировать значения и возвращать их по мере необходимости, не создавая и не храня все значения в памяти.
Процесс работы yield
:
Когда функция-генератор вызывается, она не начинает выполняться с начала. Вместо этого, создается объект-генератор, представляющий функцию, и выполнение функции останавливается до первого оператора
yield
.Когда вы вызываете
next()
для генератора (или используете его в циклеfor
), выполнение функции продолжается с точки, на которой было приостановлено до ближайшего оператораyield
.Значение, указанное после
yield
, возвращается как результат выполненияnext()
.После выполнения оператора
yield
, состояние функции сохраняется, и при следующем вызовеnext()
, выполнение продолжается с того места, на котором оно было приостановлено, и так далее, пока не достигнут конец функции или не вызван операторreturn
.
Пример использования yield
:
Last updated