Python jest ostatnio powszechnie używanym językiem programowania ogólnego przeznaczenia. Wydajność jest wbudowanym słowem kluczowym Pythona, które jest używane do tworzenia funkcji generatora. Jego funkcja generuje serię wyników. Wstrzymuje wykonywanie programu, wysyła wartość wyniku z powrotem do wywołującego i wznawia wykonanie od ostatniego uzysku. Poza tym funkcja rentowności 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ść z powrotem do wywołującego.
Ten artykuł przedstawia różnice między zyskami a zwrotami z przykładami.
Różnice między wydajnością a zwrotem
Po pierwsze, istnieje wiele wyraźnych różnic między wydajnością a zwrotem. Porozmawiajmy najpierw, co to jest.
Powrót | Wydajność |
---|---|
Instrukcja return zwraca wywołującemu tylko jedną wartość. | Deklaracja uzysku może zwrócić wywołującemu serię wyników w postaci obiektu generatora. |
Return wychodzi z funkcji, a w przypadku pętli odrzuca pętlę. Jest to ostatnia instrukcja, która zostanie umieszczona wewnątrz funkcji. | Nie usuwa zmiennych lokalnych funkcji. Wstrzymuje wykonanie i wysyła wartość z powrotem do wywołującego, a następnie kontynuuje wykonywanie programu od ostatniego oświadczenia o wydajności. |
Logicznie rzecz biorąc, funkcja powinna mieć tylko instrukcję powrotu. | W funkcji może znajdować się więcej niż jedna instrukcja uzysku. |
Oświadczenie return może zostać uruchomione tylko raz. | Oświadczenie o zysku może być uruchamiane wiele razy. |
Instrukcja return jest umieszczona wewnątrz zwykłej funkcji Pythona. | Instrukcja yield konwertuje zwykłą funkcję na funkcję generatora. |
Przykład 1: Zwrot vs. Wydajność
Zobaczmy teraz różnicę między deklaracjami zwrotu i rentowności 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
liczba1 =10
#definiowanie zmiennej liczbowej
liczba2=20
#tworzenie funkcji do wykonywania operacji arytmetycznych
def mathOP():
#obliczanie wartości sumy
zwróć num1+num2
#obliczanie różnicy
powrót num1-num2
#obliczanie wartości mnożenia
zwróć num1*num2
#obliczanie wartości dzielenia
powrót num1/num2
#wywołanie funkcji
drukuj(mathOP())
Wynik
Na wyjściu widać, że funkcja zwraca tylko pierwszą wartość, a program zostaje zakończony.
Aby wykonać podobne zadanie z wieloma instrukcjami return, musimy stworzyć cztery różne funkcje dla każdego typu operacji arytmetycznych.
#program pokazujący działanie instrukcji return#definiowanie zmiennej liczbowej
liczba1 =10
#definiowanie zmiennej liczbowej
liczba2=20
#tworzenie funkcji do wykonywania operacji arytmetycznych
def sumOP():
#obliczanie wartości sumy
zwróć num1+num2
def odejmijOP():
#obliczanie różnicy
powrót num1-num2
def mnożenieOP():
#obliczanie wartości mnożenia
zwróć num1*num2
def podziałOP():
#obliczanie wartości dzielenia
powrót num1/num2
#wywołanie funkcji sumy
print("Wartość sumy to: ",sumOP())
#wywołanie funkcji odejmowania
print("Wartość różnicy to: ",subtractOP())
#wywołanie funkcji mnożenia
print("Wartość mnożenia to: ",multiplicationOP())
#wywołanie funkcji dzielenia
print("Wartość dzielenia to: ",divisionOP())
Wynik
Możemy wykonać te wiele operacji arytmetycznych w ramach jednej funkcji generatora z wieloma instrukcjami wydajności yield.
#program pokazujący działanie deklaracji wydajności#definiowanie zmiennej liczbowej
liczba1 =10
#definiowanie zmiennej liczbowej
liczba2=20
#tworzenie funkcji do wykonywania operacji arytmetycznych
def mathOP():
#obliczanie wartości sumy
wydajność num1+num2
#obliczanie różnicy
wydajność num1-num2
#obliczanie wartości mnożenia
wydajność num1*num2
#obliczanie wartości dzielenia
wydajność num1/num2
#wywołanie funkcji
print("Wydruk wartości:")
#używanie pętli for do uzyskiwania dostępu do wartości z obiektu generatora
dla mnie w mathOP():
drukuj(i)
Wynik
Przykład 2: Zwrot vs. Wydajność
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 czym są te liczby podzielone przez 10 zwracamy zero jako resztę.
Najpierw zaimplementujmy ten przykład w naszym skrypcie Pythona z instrukcją return return.
#definiowanie listy liczbmojaLista=[10,20,25,30,35,40,50]
#definiowanie funkcji do wykonania operacji modułu
def mod(mojaLista):
dla mnie na mojej liście:
#wykonywanie operacji modułu
jeśli(i%10==0):
zwróć ja
print(mod(mojaLista))
Wynik
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 yield.
#definiowanie listy liczbmojaLista=[10,20,25,30,35,40,50]
#definiowanie funkcji do wykonania operacji modułu
def mod(mojaLista):
dla mnie na mojej liście:
#wykonywanie operacji modułu
jeśli(i%10==0):
#oświadczenie o zysku
wydajność i
dla mnie w mod(myList):
drukuj(i)
Wynik
Wniosek
Podsumowując, zwrot i wydajność 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 oświadczenie yield tworzy obiekt generatora i może zwrócić wiele wartości do wywołującego bez kończenia wykonywania programu. W tym artykule wymieniono wszystkie widoczne różnice między oświadczeniami o zwrocie i zyskach wraz z przykładami.