Yield to wbudowane słowo kluczowe Pythona, które zwraca wartości z funkcji. Wykonanie funkcji nie zostaje zakończone. Zamiast tego zwraca wartość do wywołującego i utrzymuje stan wykonania funkcji. Wykonywanie funkcji jest wznawiane od ostatniego zestawienia zysku. Wydajność pozwala nam wytworzyć sekwencję wartości, a nie jedną wartość. Jest używany wewnątrz ciała funkcyjnego. Funkcja zawierająca oświadczenie o zysku jest znana jako funkcja generatora.
Istnieje kilka korzyści, jakie dają słowa kluczowe. Na przykład kontroluje alokację pamięci i zapisuje stan zmiennej lokalnej. Zwiększa jednak złożoność kodu.
W tym artykule wyjaśniono użycie słowa kluczowego zysku na przykładach.
Składnia wydajności
Składnia zysku jest prosta i bezpośrednia. Zysk jest inicjowany za pomocą słowa kluczowego i składni zysku w następujący sposób:
dawaćwartość
Przykłady
Zobaczmy teraz przykłady, aby zrozumieć zastosowanie i działanie deklaracji wydajności. Tradycyjnie słowo kluczowe return kończy wykonywanie programu i zwraca wartość na końcu, podczas gdy yield zwraca sekwencję wartości. Nie przechowuje wartości w pamięci i zwraca wartość do wywołującego w czasie wykonywania. W podanym poniżej przykładzie funkcja generatora jest zdefiniowana w celu określenia roku przestępnego. Skok to rok, w którym podzielny przez cztery zwraca zero jako resztę. Słowo kluczowe zysku zwraca rozmówcy wartość roku przestępnego. Ponieważ otrzyma wartość roku przestępnego, wstrzyma wykonywanie programu, zwróci wartość, a następnie wznowi wykonywanie od miejsca, w którym zostało zatrzymane.
#deklarowanie generatora w celu określenia roku przestępnegodefinitywnieskok(moja lista):
dlaiwmoja lista:
Jeśli(i%4==0):
#wykorzystywanie wydajności
dawaći
#ogłaszanie listy lat
lista_roczna=[2010,2011,2012,2016,2020,2024]
wydrukować(„Drukowanie wartości roku przestępnego”)
dlaxwskok(lista_roczna):
wydrukować(x)
Wyjście
Dane wyjściowe pokazują szereg lat przestępnych.
Zobaczmy inny przykład, w którym funkcja generatora daje różne liczby i łańcuchy.
#deklarowanie funkcji generatoradefinitywniemojafunkcja():
dawać 'Ocena'
dawać 'Jan'
dawać „Taylor”
dawać „Iwan”
dawać 10
dawać 20
dawać 30
dawać 40
dawać pięćdziesiąt
#wywołanie i iteracja funkcji generatora
dlaiwmojafunkcja():
#drukowanie wartości
wydrukować(i)
Wyjście
Zaimplementujmy funkcję generatora, aby obliczyć i wydrukować wartość sześcianu ciągu liczb. Generujemy wartości kostki od 1 do 30.
#deklarowanie funkcji generatora do obliczania wartości kostkidefinitywniecalcube():
godzina=1
#nieskończona pętla while
podczas Prawdziwe:
#kalkulująca kostka
dawaćval * val * val
#zwiększanie wartości o 1
godzina=val +1
wydrukować('Wartości kostki to: ')
#wywołanie funkcji generatora
dlaiwcalcube():
Jeślii>30:
przerwa
wydrukować(i)
Wyjście
Dane wyjściowe pokazują wartość kostki mniejszą niż 30.
Wniosek
Yield to wbudowane słowo kluczowe Pythona, które nie kończy wykonywania programu i nie generuje serii wartości. W porównaniu ze słowem kluczowym return, słowo kluczowe yield generuje wiele wartości i zwraca do wywołującego. W tym artykule wyjaśniono wydajność Pythona na przykładach.