Рубрики
Без рубрики

Генератор Python

Генератор Python, генератор в Python, выход Python Generator, Python Generator VS итератор, генератор Python Далее для петли, выражение генератора Python

Автор оригинала: Pankaj Kumar.

Мы будем смотреть в генератор Python сегодня. В нашем предыдущем уроке мы узнали о питоном итераторе.

Генератор Python

Генератор Python является одним из самых полезных и специальных функций Python. Мы можем повернуть функцию вести себя как итератор, используя генераторы Python.

Основная структура генератора Python

В основном Python Generator является функцией. Вы можете рассмотреть следующую как основную структуру генератора Python.

#sample syntax of python generator
def gereratorName(argument):
   #statements
       yield argument
   #statements


#calling the generator
variableName = gereratorName(10)
print(variableName)

В приведенной выше структуре вы можете видеть, что все похоже на функцию, кроме одного, то есть доходность ключевое слово. Это ключевое слово играет жизненно важную роль. Только использование доходность , изменяет нормальную функцию в генератор.

Нормальная функция возвращает некоторое значение, генератор Урожайность некоторое значение. Генератор автоматически реализует Далее () и _ITER_ Отказ

Генератор Python написан как обычные функции, но используйте оператор текучести всякий раз, когда они хотят вернуть некоторые данные. Каждый раз, когда следующий () вызывается функцией генератора, генератор возобновляется там, где он остановился (он вспоминает все значения данных, и какое утверждение было последним выполненным).

Понимание генератора Python

Давайте теперь узнаем каждую строку предыдущего кода.

Линия 2 , это декларация генератора, который принимает аргумент. Этот аргумент является необязательным. Это зависит от программиста, который будет реализовывать генератор.

Линия 3, 5 упоминания могут быть некоторые другие заявления.

Линия 4 является решающей частью вышеуказанной программы. Это говорит о доходность Значение аргумента на основе некоторых условий, которые могут быть указаны в заявлениях.

И линия 8 Вызывает генератор с параметром 10 и строка 9 печатает возвращенный объект генератора. Если вы запустите вышеуказанную программу, то она будет выводиться в следующем,


Обратите внимание, что вышеуказанный выход не является значением. На самом деле это указывает, где объект. Чтобы получить фактическое значение, которое вы получите помощь итератора. Затем неявно следующий () будет вызываться на объекте, чтобы получить следующее значение, которое получает.

Если вы хотите распечатать сгенерированные значения без петли, вы можете использовать следующую () функцию на нем. Если вы добавите еще одну строку в вышеуказанном коде, как ниже.

print(next(variableName))

Затем он выводится значение 10, которое было передано как аргумент и дает.

Получите значение Python Generator с явным следующим () вызовом

Теперь посмотрите на следующую программу, где мы явно называем следующую () функцию генератора.

#fruits is a generator which generates some fruit name
def fruits():
   yield "Mango"
   yield "Jackfruit"
   yield "Banana"
   yield  "Guava"


#calling the generator fruit
getfruits = fruits()
print(next(getfruits))
print(next(getfruits))
print(next(getfruits))
print(next(getfruits))

В приведенном выше коде вы должны знать точное количество значений, которые были получены. В противном случае вы получите некоторую ошибку, так как больше не генерируется ценность от фруктов генератора функции ().

Приведенный выше код будет выведен следующим образом:

Mango
Jackfruit
Banana
Guava

Получить значение Generator Python с Implicit Next () Call

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

#fruits is a generator which generates some fruit name
def fruits():
   yield "Mango"
   yield "Jackfruit"
   yield "Banana"
   yield  "Guava"
#calling the generator fruit
getfruits = fruits()

for a in getfruits:
   print(a)

Рабочая процедура Python Generator

Давайте теперь посмотрим, как генератор на самом деле работает. Нормальная функция завершается после оператора возврата, но генератор не делает.

Впервые мы вызываем функцию, она возвращает первое значение, которое дает итератор. В следующий раз, когда мы называем генератор, то он возобновляется, откуда он был приостановлен раньше.

Все значения не возвращаются одновременно из генератора в отличие от обычной функции. Это специальность генератора. Он генерирует значения, вызывая функцию снова и снова, которая требует меньше памяти, когда мы создаем огромное количество значений.

Угадайте вывод ниже программы генератора Python

Давайте посмотрим другой код. Если вы можете взять на себя вывод, то это усиление.

def timesTable(number):
   for i in range(1, 11):
       yield i * number
       i += 1

gettimes = timesTable(10)
for a in gettimes:
   print(a)

Выход будет:

Помните Диапазон () это встроенный генератор, который генерирует номер в верхней границе. Надеюсь, вы теперь можете написать свой собственный генератор. Удачи.

Ссылка: Python API Doc.