Module (2%)
Section (13%)

Генераторы - где их найти

Генератор - с чем Вы ассоциируете это слово? Возможно, это относится к какому-то электронному устройству. Или, возможно, это относится к тяжелой, промышленной машине, предназначенной для производства электричества.

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

Вы можете не осознавать этого, но Вы сталкивались с генераторами много, много раз раньше. Взгляните на очень простой фрагмент:

for i in range(5): print(i)

Функция range(), по сути, является генератором, который (фактически, опять же) является итератором.

В чем разница?

Функция возвращает одно четко определенное значение - оно может быть результатом более или менее сложной оценки, например, полинома, и вызывается один раз - только один раз.

Генератор возвращает серию значений и, как правило, (неявно) вызывается более одного раза.

 

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

Вышеупомянутый процесс полностью прозрачен. Давайте прольем на него немного света. Покажем Вам протокол итератора.



Code

for i in range(5):
print(i)
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×