Wydajność a zwrot w Pythonie

Python Yield Vs Return



Python jest ostatnio powszechnie używanym językiem programowania ogólnego przeznaczenia. Wydajność jest wbudowanym słowem kluczowym Pythona używanym do tworzenia funkcji generatora. Jego funkcja generuje szereg wyników. Wstrzymuje wykonywanie programu, wysyła wartość wyniku z powrotem do wywołującego i wznawia wykonanie od ostatniej wydajności. Poza tym funkcja uzysku wysyła wygenerowaną serię wyników w postaci obiektu generatora. Z drugiej strony, return jest również wbudowanym słowem kluczowym w Pythonie, które kończy działanie funkcji i odsyła wartość do wywołującego.

W tym artykule przedstawiono na przykładach różnice między wydajnością a zwrotami.







Różnice między wydajnością a zwrotem

Po pierwsze, istnieje wiele wyraźnych różnic między zyskiem a zwrotem. Najpierw omówmy, co to jest.



Powrót Dawać
Instrukcja return zwraca wywołującemu tylko jedną wartość. Instrukcja yield może zwrócić do wywołującego serię wyników w postaci obiektu generatora.
Return wychodzi z funkcji, a w przypadku pętli odrzuca pętlę. Jest to ostatnia instrukcja umieszczana wewnątrz funkcji. Nie usuwa zmiennych lokalnych funkcji. Wstrzymuje wykonywanie i wysyła wartość z powrotem do obiektu wywołującego i kontynuuje wykonywanie programu od ostatniej instrukcji wydajności.
Logicznie rzecz biorąc, funkcja powinna mieć tylko instrukcję return. W funkcji może znajdować się więcej niż jedna instrukcja wydajności.
Instrukcja return może zostać uruchomiona tylko raz. Oświadczenie o zysku może być uruchamiane wiele razy.
Instrukcja return jest umieszczana wewnątrz zwykłej funkcji Pythona. Instrukcja yield konwertuje zwykłą funkcję na funkcję generatora.

Przykład1: Zwrot a rentowność

Przyjrzyjmy się teraz różnicy między deklaracjami zwrotu i zysku na przykładach. W podanym poniżej przykładowym programie użyliśmy wielu instrukcji return. Możesz zauważyć, że wykonanie programu zakończy się po pierwszej instrukcji return, a reszta kodu nie zostanie wykonana.



#program pokazujący działanie instrukcji return

#definiowanie zmiennej liczbowej

numer1=10

#definiowanie zmiennej liczbowej

num2=20

#tworzenie funkcji do wykonywania operacji arytmetycznych

def mathOP():

#obliczanie wartości sumy

powrótnumer1+num2

#obliczanie różnicy

powrótnumer1-num2

#obliczanie wartości mnożenia

powrótnumer1*num2

#obliczanie wartości dzielenia

powrótnumer1/num2

#wywołanie funkcji

wydrukować(mathOP())

Wyjście





Na wyjściu widać, że funkcja zwraca tylko pierwszą wartość, a program zostaje zakończony.



Aby wykonać podobne zadanie z wieloma instrukcjami return, musimy utworzyć cztery różne funkcje dla każdego typu operacji arytmetycznych.

#program pokazujący działanie instrukcji return

#definiowanie zmiennej liczbowej

numer1=10

#definiowanie zmiennej liczbowej

num2=20

#tworzenie funkcji do wykonywania operacji arytmetycznych

def sumOP():

#obliczanie wartości sumy

powrótnumer1+num2

def odejmijOP():

#obliczanie różnicy

powrótnumer1-num2

mnożenie definicji OP():

#obliczanie wartości mnożenia

powrótnumer1*num2

def podział OP():

#obliczanie wartości dzielenia

powrótnumer1/num2

#wywołanie funkcji sumy

wydrukować(„Wartość sumy wynosi:”,sumOP())

#wywołanie funkcji odejmowania

wydrukować(„Wartość różnicy wynosi:”,odejmijOP())

#wywołanie funkcji mnożenia

wydrukować('Wartość mnożenia to: ',mnożenieOP())

#wywołanie funkcji dzielenia

wydrukować('Wartość podziału to: ',podziałOP())

Wyjście

Możemy wykonać te wiele operacji arytmetycznych w jednej funkcji generatora z wieloma instrukcjami wydajności.

#program pokazujący działanie deklaracji wydajności

#definiowanie zmiennej liczbowej

numer1=10

#definiowanie zmiennej liczbowej

num2=20

#tworzenie funkcji do wykonywania operacji arytmetycznych

def mathOP():

#obliczanie wartości sumy

dawaćnumer1+num2

#obliczanie różnicy

dawaćnumer1-num2

#obliczanie wartości mnożenia

dawaćnumer1*num2

#obliczanie wartości dzielenia

dawaćnumer1/num2

#wywołanie funkcji

wydrukować(„Drukowanie wartości:”)

#używanie pętli for do uzyskiwania dostępu do wartości z obiektu generatora

dlaja w matematyce():

wydrukować(i)

Wyjście

Przykład2: zwrot a rentowność

Zobaczmy inny przykład deklaracji zwrotu i zysku. W podanym przykładzie mamy listę liczb, która jest przekazywana do funkcji mod() jako argument. Wykonujemy operację modulo na każdej liczbie z listy i sprawdzamy, co to za liczby podzielone przez 10 zwraca zero jako resztę.

Najpierw zaimplementujmy ten przykład w naszym skrypcie Pythona z instrukcją return.

#definiowanie listy liczb

moja lista=[10,20,25,30,35,40,pięćdziesiąt]

#definiowanie funkcji do wykonania operacji modułu

def mod(moja lista):

dlaja na mojej liście:

#wykonywanie operacji modułu

Jeśli(i%10==0):

powróti

wydrukować(przeciwko(moja lista))

Wyjście

Instrukcja return zwraca tylko pierwszą liczbę do wywołującego i kończy wykonywanie funkcji.

Teraz zaimplementujmy ten sam przykład w naszym skrypcie Pythona za pomocą instrukcji yield.

#definiowanie listy liczb

moja lista=[10,20,25,30,35,40,pięćdziesiąt]

#definiowanie funkcji do wykonania operacji modułu

def mod(moja lista):

dlaja na mojej liście:

#wykonywanie operacji modułu

Jeśli(i%10==0):

#oświadczenie o zysku

dawaći

dlaja w mod(moja lista):

wydrukować(i)

Wyjście

Wniosek

Podsumowując, return i yield to dwa wbudowane słowa kluczowe lub instrukcje Pythona. Instrukcja return służy do zwracania wartości do wywołującego z funkcji i kończy wykonywanie programu, podczas gdy instrukcja yield tworzy obiekt generatora i może zwrócić wiele wartości do wywołującego bez przerywania wykonywania programu. W tym artykule wymieniono wszystkie widoczne różnice między oświadczeniami o zwrocie i zyskach wraz z przykładami.