W Pythonie, podobnie jak w przypadku definiowania normalnej funkcji ,możemy zdefiniować funkcję generatora za pomocą słowa kluczowego
def,
ale zamiast instrukcji
return używamy instrukcji
yield.
Słowo kluczowe
yield służy do wygenerowania wartości z generatora.
Wywołanie funkcji generatora nie powoduje natychmiastowego wykonania treści funkcji. Zamiast tego zwraca obiekt generatora, którym można przeprowadzać iterację
w celu wygenerowania wartości.
Przykład:
def generator(liczba):
x=0
while x<liczba:
yield x
x += 1
for i in generator(5):
print(i)
0
1
2
3
4
W przykładzie powyżej słowo kluczowe
yield służy do generowania wartości z generatora i wstrzymywania wykonywania funkcji generatora do momentu zażądania następnej wartości.