Генераторы в Python | Кодементор

Один из наиболее часто задаваемых вопросов на собеседованиях по Python: «Работали ли вы с генераторами? Как и зачем это нужно было использовать?»

В этом посте мы попытаемся изучить, что это такое, как и почему они используются?

По сути, генератор можно рассматривать как функцию, которая возвращает серию результатов вместо одного результата.

Синтаксическая разница между функцией и генератором заключается в том, что Генератор использует ключевое слово «доходность» вместо ключевого слова «возврат».

Генераторы дают нам итератор (что-то, что мы можем зациклить, например, список или словарь), поэтому их можно использовать с циклическими конструкциями, такими как циклы «для» и «пока».

Дайте определение генератору.

def generator(number):
  while True: 
    	number += 1 
        yield number 

Разница с функцией:

Итак, опять же, в основном генераторы дают нам итератор, который мы можем перебирать.
Они также эффективно используют память. Поскольку обычная функция будет выполнять всю обработку, сохранять результат в памяти, а затем возвращать final один раз в конце.

Но в генераторах результаты рассчитываются и доступны по мере необходимости по одному за раз.

Здесь следует отметить ключевое слово «yield», которое мы также можем определить для нашего собственного класса генератора. Это можно сделать, реализуя методы __iter__ и __next__ класса.

Применение:

По моему мнению, использование генераторов — это то, где мы хотим, чтобы непрерывный поток данных обрабатывался последовательно, например. чтение содержимого файла, создание длинного потока чисел, таких как простые числа, нечетные/четные числа и т. д.

Вы всегда должны проверять, можете ли вы использовать генератор для конкретного требования, которое включает в себя зацикливание данных. Спасибо.

Пожалуйста, поделитесь, чтобы поддержать, если вам нравится моя работа.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *