Генераторы в Python | Кодементор
Один из наиболее часто задаваемых вопросов на собеседованиях по Python: «Работали ли вы с генераторами? Как и зачем это нужно было использовать?»
В этом посте мы попытаемся изучить, что это такое, как и почему они используются?
По сути, генератор можно рассматривать как функцию, которая возвращает серию результатов вместо одного результата.
Синтаксическая разница между функцией и генератором заключается в том, что Генератор использует ключевое слово «доходность» вместо ключевого слова «возврат».
Генераторы дают нам итератор (что-то, что мы можем зациклить, например, список или словарь), поэтому их можно использовать с циклическими конструкциями, такими как циклы «для» и «пока».
Дайте определение генератору.
def generator(number):
while True:
number += 1
yield number
Разница с функцией:
Итак, опять же, в основном генераторы дают нам итератор, который мы можем перебирать.
Они также эффективно используют память. Поскольку обычная функция будет выполнять всю обработку, сохранять результат в памяти, а затем возвращать final один раз в конце.
Но в генераторах результаты рассчитываются и доступны по мере необходимости по одному за раз.
Здесь следует отметить ключевое слово «yield», которое мы также можем определить для нашего собственного класса генератора. Это можно сделать, реализуя методы __iter__ и __next__ класса.
Применение:
По моему мнению, использование генераторов — это то, где мы хотим, чтобы непрерывный поток данных обрабатывался последовательно, например. чтение содержимого файла, создание длинного потока чисел, таких как простые числа, нечетные/четные числа и т. д.
Вы всегда должны проверять, можете ли вы использовать генератор для конкретного требования, которое включает в себя зацикливание данных. Спасибо.
Пожалуйста, поделитесь, чтобы поддержать, если вам нравится моя работа.