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