logo

Kiedy używać wydajności zamiast zwrotu w Pythonie?

Instrukcja Yield wstrzymuje wykonywanie funkcji i wysyła wartość z powrotem do osoby wywołującej, ale zachowuje wystarczający stan, aby umożliwić wznowienie funkcji od miejsca, w którym została przerwana. Po wznowieniu działania funkcja kontynuuje wykonywanie natychmiast po ostatnim osiągnięciu wydajności. Dzięki temu kod może generować w czasie serię wartości, zamiast obliczać je na raz i wysyłać z powrotem w formie listy.

Zobaczmy na przykładzie:



Pyton






# A Simple Python program to demonstrate working> # of yield> # A generator function that yields 1 for the first time,> # 2 second time and 3 third time> def> simpleGeneratorFun():> >yield> 1> >yield> 2> >yield> 3> # Driver code to check above generator function> for> value>in> simpleGeneratorFun():> >print>(value)>



>

vlc, aby pobrać YouTube

>

Wyjście:

1 2 3>

Powrót wysyła określoną wartość z powrotem do obiektu wywołującego, natomiast Dawać może wygenerować sekwencję wartości. Powinniśmy używać wydajności, gdy chcemy iterować po sekwencji, ale nie chcemy przechowywać całej sekwencji w pamięci. Yield jest używany w Pythonie generatory . Funkcja generatora jest definiowana tak samo jak zwykła funkcja, ale ilekroć zachodzi potrzeba wygenerowania wartości, robi to za pomocą słowa kluczowego Yield, a nie return. Jeśli treść def zawiera wydajność, funkcja automatycznie staje się funkcją generującą.

Pyton




jak wyjść z pętli while Java

# A Python program to generate squares from 1> # to 100 using yield and therefore generator> # An infinite generator function that prints> # next square number. It starts with 1> def> nextSquare():> >i>=> 1> ># An Infinite loop to generate squares> >while> True>:> >yield> i>*>i> >i>+>=> 1> # Next execution resumes> ># from this point> # Driver code to test above generator> # function> for> num>in> nextSquare():> >if> num>>100>:> >break> >print>(num)>

>

>

Wyjście:

1 4 9 16 25 36 49 64 81 100>