Yield to wbudowane słowo kluczowe Pythona, które zwraca wartości z funkcji. Wykonywanie funkcji nie zostaje zakończone. Raczej zwraca wartość do wywołującego i utrzymuje stan wykonania funkcji. Wykonanie funkcji jest wznawiane od ostatniego rachunku zysków i strat. Wydajność pozwala nam wytworzyć sekwencję wartości, a nie jedną wartość. Jest używany wewnątrz ciała funkcyjnego. Funkcja, która zawiera oświadczenie o zyskach, jest znana jako funkcja generatora.
Istnieje kilka zalet udostępniania słowa kluczowego. 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 nieskomplikowana. Zysk jest inicjowany za pomocą słowa kluczowego i składni zysku w następujący sposób:
wartość plonuPrzykłady
Zobaczmy teraz przykłady, aby zrozumieć zastosowanie i działanie deklaracji plonów. Tradycyjnie słowo kluczowe return kończy wykonywanie programu i zwraca wartość na końcu, natomiast 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 podzielna przez cztery zwraca zero jako resztę remain. 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ępnegodef leapfunc(moja_lista):
dla mnie w my_list:
jeśli(i%4==0):
#wykorzystywanie wydajności
wydajność i
#ogłaszanie listy lat
lista_roczna=[2010,2011,2012,2016,2020,2024]
print("Drukowanie wartości roku przestępnego")
dla x w leapfunc(lista_roku):
drukuj(x)
Wynik
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 generatoradef mojafunkcja():
plon "Znak"
wydać „Jan”
plon "Taylor"
plon "Iwan"
wydajność 10
wydajność 20
wydajność 30
wydajność 40
wydajność 50
#wywołanie i iteracja funkcji generatora
dla mnie w myfunc():
#drukowanie wartości
drukuj(i)
Wynik
Zaimplementujmy funkcję generatora, aby obliczyć i wydrukować wartość kostki ciągu liczb. Generujemy wartości kostki od 1 do 30.
#deklarowanie funkcji generatora do obliczania wartości kostkidef calcube():
wart=1
#nieskończona pętla while
podczas gdy prawda:
#kalkulująca kostka
wydajność wart*val*val
#zwiększanie wartości o 1
wart=wal+1
print("Wartości kostki to:")
#wywołanie funkcji generatora
dla i w calcube():
jeśli ja>30:
złamać
drukuj(i)
Wynik
Wyjście pokazuje 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 zysku generuje wiele wartości i zwraca do rozmówcy. Ten artykuł wyjaśnia wydajność Pythona na przykładach.