Wydajność Pythona

Python Yield



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ępnego
definitywnieskok(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 generatora
definitywniemojafunkcja():
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 kostki
definitywniecalcube():
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.