Słowo kluczowe "yield" w języku Python jest używane w kontekście tworzenia generatorów. Generator jest specjalnym rodzajem funkcji, który pozwala na zwracanie wartości po jednej w trakcie wykonywania funkcji, a nie zwraca wszystkich wyników naraz. Słowo kluczowe "yield" jest używane do wstrzymania wykonywania funkcji, zachowując jej stan, a następnie zwracania wartości do kodu wywołującego funkcję. Gdy funkcja jest ponownie wywoływana, wznowi swoje wykonywanie od momentu, w którym została wstrzymana, zachowując swój stan.
Przykład wykorzystania "yield" w funkcji-generatorze:
def generator():
yield 1
yield 2
yield 3
gen = generator()
# Wywołanie funkcji "generator()" nie powoduje jej wykonania
# Tworzymy obiekt generatora i możemy go iterować
for value in gen:
print(value)
W powyższym przykładzie funkcja `generator` jest funkcją-generator, która zawiera trzy instrukcje "yield". Gdy iterujemy po obiekcie generatora `gen`, za każdym razem, gdy osiągamy instrukcję "yield", funkcja zostaje wstrzymana, a wartość jest zwracana do kodu wywołującego. Po zwróceniu wartości stan funkcji jest zachowywany, więc przy kolejnym iterowaniu funkcja wznowi działanie od miejsca, w którym została wstrzymana.
Użycie generatorów jest przydatne, gdy potrzebujemy efektywnie przetwarzać duże zbiory danych lub generować wartości w trakcie ich tworzenia, co pozwala na oszczędność pamięci i zasobów.
Komentarz