HTML CSS PYTHON
reklama
Generatory w Pythonie
Generator w Pythonie to funkcja, która zwraca iterator i ogólnie polega na tym, że funkcja ta może zostać zatrzymana a następnie wznowiona od miejsca, w którym została wstrzymana. Na podstawie zapamiętanego stanu możliwe jest zwracanie różnych wartości (iteratorów) podczas kolejnych wstrzymań funkcji.

Generatory są przydatne, gdy chcemy wygenerować dużą sekwencję wartości, ale nie chcemy przechowywać ich wszystkich w pamięci naraz. Generator zwraca kolejne elementy dopiero przy odwołaniu się do generatora. Wówczas redukujemy liczbę wykonywanych obliczeń, zmniejszamy wykorzystanie pamięci oraz tworzymy nieskończoną ilość elementów.
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.
Możemy utworzyć obiekt funkcji generatora i wykorzystując metodę next() i wygenerować wartości generatora.
Przykład:
obiekt=generator(5)
print(next(obiekt))
0
print(next(obiekt))
1
print(next(obiekt))
2
print(next(obiekt))
3
print(next(obiekt))
4
Samouczek Pythona
reklama
reklama
Szkoła bananik.pl jest zoptymalizowana pod kątem uczenia się, testowania i szkolenia.
Przykłady są stale sprawdzane, aby uniknąć błędów, ale nie możemy zagwarantować pełnej poprawności wszystkich treści.
Korzystając z tej witryny, wyrażasz zgodę na przeczytanie i zaakceptowanie naszych warunków użytkowania, plików cookie i polityki prywatności.
© 2022 bananik.pl
Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej.Rozumiem