Python 3 Yield: Boost Your Code Performance with Generators
Python 3 yield - это ключевое слово, которое используется для создания генераторов функций. Генераторы являются функциями, которые работают как итераторы и могут производить множество значений во время своей работы.
С помощью yield функция приостанавливает своё выполнение на каждой итерации, сохраняя своё состояние и возвращая значение. После исполнения всех своих инструкций, функция прекращает работу без явного использования команды return, но сохранив все свои переменные и стек вызовов.
Пример:
python
def count_up_to(n):
i = 1
while i <= n:
yield i
i += 1
В данном примере мы определили функцию count_up_to, которая принимает аргумент n и итерируется по числам от 1 до n, используя ключевое слово yield для возврата каждого значения i. При каждой итерации цикла функция приостанавливается на ключевом слове yield, сохраняя своё состояние. Когда итератор вызывает функцию count_up_to еще раз, выполнение продолжится с места, где остановилось в предыдущий раз.
Мы можем использовать генераторы для прохода через большие объемы данных или для работы с бесконечными последовательностями. Они могут быть более эффективными, чем итерирование по списку или кортежам в том смысле, что они не хранят в памяти все элементы вместе, а только один элемент за раз, экономя память и время выполнения.