Inhaltsverzeichnis
häufig gestellte Fragen (FAQs) zum Ertragsschlüsselwort in Python
Was ist der Unterschied zwischen den Keywords in Python Rendite und Rückgabe in Python? Das Rückgabe -Schlüsselwort wird verwendet, wenn eine Funktion einen Wert erzeugt und dann beendet. Sobald eine Funktion einen Wert zurückgibt, wird ausgeführt und die Steuerung an den Anrufer weitergegeben. Andererseits wird das Keyword für die Ausbeute in einer Funktion wie einer Rückgabeanweisung verwendet, erzeugt jedoch einen Wert und setzt die Ausführung der Funktion aus. Die Funktion kann später wieder aufgenommen werden, wo sie aufgehört hat, sodass sie im Laufe der Zeit eine Reihe von Werten erzeugen kann, anstatt sie alle gleichzeitig zu berechnen und sie wie eine Liste zurückzuschicken. Arbeiten Sie in Python? Wenn die Funktion aufgerufen wird, gibt sie einen Iterator zurück, beginnt jedoch nicht sofort die Ausführung. Wenn die nächste () -Methode des Iterators aufgerufen wird, beginnt die Funktion auszuführen. Sobald es auf das Keyword zum Ertrag trifft, gibt es das Argument zurück, das an die Ausführung von Rendite und eine Pause besteht. Die Funktion kann wieder aufgenommen werden, wo sie aufgerufen hat, indem Sie als nächstes () aufgerufen werden, sodass die Funktion eine Reihe von Werten im Laufe der Zeit erzeugt und sich als Generator verhält. In Python? 🎜>
In diesem Beispiel ist Simple_generator eine Generatorfunktion, da das Keyword für die Ertragsrendite verwendet wird. Wenn wir das von Simple_generator () zurückgegebene Generatorobjekt iterieren, ergibt es 1, dann 2 und dann 3, wobei die Ausführung zwischen jeder Rendite pausiert. >
Kann eine Funktion sowohl Ertrags- als auch Rückgabeanweisungen in Python enthalten? Es ist jedoch wichtig zu beachten, dass nach Ausführung einer Rückgabeanweisung die Ausführung der Funktion beendet wird und die Kontrolle an den Anrufer weitergegeben wird. Wenn also vor einer Ertragserklärung eine Rückgabeerklärung ausgeführt wird, wird die Ertragserklärung niemals erreicht. Wenn zuerst eine Ertragsanweisung ausgeführt wird, wird die Funktion pausiert und die Kontrolle wird an den Anrufer zurückgegeben, die Funktion kann jedoch später wieder aufgenommen werden. An diesem Punkt kann die Rückgabeanweisung ausgeführt werden.
Was ist der Unterschied zwischen einer Generatorfunktion und einer normalen Funktion In Python? Wenn eine Generatorfunktion aufgerufen wird, gibt sie ein Generatorobjekt zurück, ohne die Ausführung der Funktion zu beginnen. Wenn die nächste () -Methode zum ersten Mal aufgerufen wird, beginnt die Funktion, bis sie das Keyword für den Ertrag erreicht, das einen Wert erzeugt. Die Funktion pausiert die Ausführung und die Steuerung wird an den Anrufer weitergeleitet. Wenn eine normale Funktion aufgerufen wird, wird die Ausführung unmittelbar begonnen und läuft bis zur Fertigstellung aus, wodurch ein Wert zurückgegeben wird. Ja, Sie können mehrere Ertragsanweisungen in einer einzelnen Funktion in Python verwenden. Wenn die Funktion aufgerufen wird, liefert sie jedes Mal einen Wert, wenn sie auf eine Ertragsanweisung stößt, deren Ausführung inneht und die Kontrolle an den Anrufer weitergibt. Wenn die nächste () -Methode der Funktion aufgerufen wird, wird die Ausführung fortgesetzt, von der sie aufgehört haben, bis sie auf die nächste Rendite -Anweisung trifft. Python? Sie können diese Ausnahme durch einen Versuch/außer Block verwenden. Hier ist ein Beispiel:
Ausbeute 2
außer Stopperation:
Kann ich das Keyword in einer Lambda -Funktion in Python verwenden? Dies liegt daran, dass Lambda -Funktionen auf einen einzelnen Ausdruck beschränkt sind und das Keyword für Ertrag einen Anweisungskontext führt. Wenn Sie eine Generatorfunktion erstellen müssen, müssen Sie eine DEF -Anweisung verwenden, um eine normale Funktion zu definieren.
Heim Technologie-Peripheriegeräte IT Industrie Schneller Tipp: Verstehen des Keywords in Python

Schneller Tipp: Verstehen des Keywords in Python

Feb 18, 2025 am 10:20 AM

Quick Tip: Understanding the Yield Keyword in Python

Schneller Tipp: Verstehen des Keywords in Python

Vielen Dank an Shaumik Daityari für die freundliche Unterstützung bei der Überprüfung dieses Artikels.

Wenn wir in Python eine Funktion aufrufen, wird die Funktion normalerweise arbeiten, bis sie auf eine Rückkehr, Ausnahme trifft oder ihr Ende erreicht - danach gibt sie die Kontrolle an den Anrufer zurück. Wann immer Sie diese Funktion erneut aufrufen, beginnt der Vorgang von Scratch !

Sagen Sie, Sie haben eine Person gebeten, die roten Autos auf der Straße zu verfolgen. Die Person wird weiterhin eine Frage bekommen, die sie stellt, wenn sie ein rotes Auto entdeckt hat oder nicht, und die Person würde wiederum entweder mit „Ja“ oder „Nein“ antworten. Wenn die Person mit „Ja“ antwortete, steigt die Häufigkeit, mit der das rote Auto entdeckt wurde.

Mal sehen, wie wir dies in Python tun können:

import time

def red_cars(answer):
    n = 0
    while True:
        if answer == 'yes':
            n = n + 1
            return n
        else:
            return n

stop = time.time() + 5 * 60
while time.time() < stop:
    answer = raw_input('Did you spot a red car on the road? ("yes" or "no"): ')
    times = red_cars(answer)
    print 'You have spotted ' + str(times) + ' cars so far!'
Nach dem Login kopieren

Wenn Sie das Programm ausführen, was bemerken Sie dann? Haben Sie bemerkt, dass die Anzahl der Male für die Antwort "Ja" immer auf 1 begrenzt ist, und wenn Sie "Nein" beantworten, wird die Anzahl der Male 0

Hier kommt Pythons Ertrags -Keyword ins Spiel. Ertrag ist ein Mittel, mit dem wir den Anrufer vorübergehend

Handregelung Handregelung erwarten, und erwarten, von dem Punkt weiterzumachen, an dem die Kontrolle übergeben wurde.

Bevor ich die Lösung für das obige Beispiel gibt, werde ich ein sehr einfaches Beispiel demonstrieren, um besser zu veranschaulichen, wie die Ertrag funktioniert.

Sagen wir, wir haben das folgende einfache Python -Skript:

def step_by_step():
    return 'step 1'
    return 'step 2'
    return 'step 3'
    
step = step_by_step()
for i in range (3):
    print step
Nach dem Login kopieren
Wenn Sie das Skript ausführen, erhalten Sie die folgende Ausgabe:

step 1
step 1
step 1
Nach dem Login kopieren
Wenn wir nun stattdessen die Ertrag verwenden, wie folgt:

def step_by_step():
    yield 'step 1'
    yield 'step 2'
    yield 'step 3'
    
step = step_by_step()
for i in range (3):
    print step.next()
Nach dem Login kopieren
Die Ausgabe wäre wie folgt:

step 1
step 2
step 3
Nach dem Login kopieren
Wie Sie sehen, konnten wir eine

-Serie -Werte erstellen, wie für jeden Aufruf der Funktion von dem Punkt, an dem sie einen Wert ergibt. Diese Art von Funktion wird als Generator bezeichnet. Eine solche Funktion erstellt einen Generator -Iterator, wie bei jedem Aufruf der Methode als nächstes () wir zur nächsten Ertragsanweisung wechseln.

Wenn wir zu unserem Hauptbeispiel zurückkehren (rote Autos), kann es wie folgt geschrieben werden, um die erforderliche Aufgabe auszuführen:

import time

def red_cars(answer = None):
    n = 0
    while True:
        if answer=="yes":
            n = n + 1
            answer = yield n
        else:
            answer = yield n

car_color = red_cars()
car_color.next()

stop = time.time() + 5 * 60
while time.time() < stop:
    answer = raw_input('Did you spot a red car on the road? ("yes" or "no"): ')
    print 'You have spotted ' + str(car_color.send(answer)) + ' cars so far!'
Nach dem Login kopieren
, wie wir sehen können, wird der Ertrag als wichtig angesehen, wenn wir daran interessiert sind, die Ausführung am letzten Punkt wieder aufzunehmen, an dem die Funktion (Generator) beendet ist und wo wir auch daran interessiert sind, die Werte lokaler Variablen zwischen den verschiedenen Aufrufen zu halten - Im Gegensatz zu normalen Funktionen, bei denen solche Werte beim Verlassen der Funktion zerstört werden.

Es gibt jedoch andere Verwendungen der Ertrag. Beispielsweise können Sie Rendite verwenden, wenn Sie eine Funktion haben, die eine Sequenz zurückgibt (z. B. Zeilen in einem Excel -Blatt), und Sie müssen über die Sequenz iterieren, ohne dass jeder Wert im Speicher gleichzeitig gleichmäßig ist. Das heißt, um Speicher zu speichern.

Ertrag kann auch bei der Arbeit mit iteraktiven verwendet werden, bei denen wir eine große Liste haben, die zwischen den Funktionen schwer zu übergeben ist. Zum Beispiel verwenden Pythons eingebaute Funktionen für Permutationen und Kombinationen im Itertools -Modul Rendite.

häufig gestellte Fragen (FAQs) zum Ertragsschlüsselwort in Python

Was ist der Unterschied zwischen den Keywords in Python Rendite und Rückgabe in Python? Das Rückgabe -Schlüsselwort wird verwendet, wenn eine Funktion einen Wert erzeugt und dann beendet. Sobald eine Funktion einen Wert zurückgibt, wird ausgeführt und die Steuerung an den Anrufer weitergegeben. Andererseits wird das Keyword für die Ausbeute in einer Funktion wie einer Rückgabeanweisung verwendet, erzeugt jedoch einen Wert und setzt die Ausführung der Funktion aus. Die Funktion kann später wieder aufgenommen werden, wo sie aufgehört hat, sodass sie im Laufe der Zeit eine Reihe von Werten erzeugen kann, anstatt sie alle gleichzeitig zu berechnen und sie wie eine Liste zurückzuschicken. Arbeiten Sie in Python? Wenn die Funktion aufgerufen wird, gibt sie einen Iterator zurück, beginnt jedoch nicht sofort die Ausführung. Wenn die nächste () -Methode des Iterators aufgerufen wird, beginnt die Funktion auszuführen. Sobald es auf das Keyword zum Ertrag trifft, gibt es das Argument zurück, das an die Ausführung von Rendite und eine Pause besteht. Die Funktion kann wieder aufgenommen werden, wo sie aufgerufen hat, indem Sie als nächstes () aufgerufen werden, sodass die Funktion eine Reihe von Werten im Laufe der Zeit erzeugt und sich als Generator verhält. In Python? 🎜>

für den Wert in Simple_generator ():

print (Wert)

In diesem Beispiel ist Simple_generator eine Generatorfunktion, da das Keyword für die Ertragsrendite verwendet wird. Wenn wir das von Simple_generator () zurückgegebene Generatorobjekt iterieren, ergibt es 1, dann 2 und dann 3, wobei die Ausführung zwischen jeder Rendite pausiert. >

Mit dem Keyword in Python können Sie Funktionen schreiben, mit denen eine Folge von Ergebnissen im Laufe der Zeit erzeugt werden kann, anstatt sie alle gleichzeitig zu berechnen und sie beispielsweise in einer Liste zurückzugeben. Dies kann besonders nützlich sein, wenn das Ergebnissatz groß ist und Sie Speicher speichern möchten. Es ermöglicht Ihnen auch, Ihre eigenen iterablen Objekte zu erstellen und sie mit Python für Schleifen, Verständnisse und andere Funktionen zu verwenden, die eine iterable erwarten.

Kann eine Funktion sowohl Ertrags- als auch Rückgabeanweisungen in Python enthalten? Es ist jedoch wichtig zu beachten, dass nach Ausführung einer Rückgabeanweisung die Ausführung der Funktion beendet wird und die Kontrolle an den Anrufer weitergegeben wird. Wenn also vor einer Ertragserklärung eine Rückgabeerklärung ausgeführt wird, wird die Ertragserklärung niemals erreicht. Wenn zuerst eine Ertragsanweisung ausgeführt wird, wird die Funktion pausiert und die Kontrolle wird an den Anrufer zurückgegeben, die Funktion kann jedoch später wieder aufgenommen werden. An diesem Punkt kann die Rückgabeanweisung ausgeführt werden.

Kann ich das Keyword in einer rekursiven Funktion in Python verwenden? Sie müssen sich jedoch daran erinnern, den rekursiven Anruf zu iterieren und jeden Wert zu ergeben. Andernfalls erhalten Sie ein Generatorobjekt anstelle der von Ihnen erwarteten Werte.

Was ist der Unterschied zwischen einer Generatorfunktion und einer normalen Funktion In Python? Wenn eine Generatorfunktion aufgerufen wird, gibt sie ein Generatorobjekt zurück, ohne die Ausführung der Funktion zu beginnen. Wenn die nächste () -Methode zum ersten Mal aufgerufen wird, beginnt die Funktion, bis sie das Keyword für den Ertrag erreicht, das einen Wert erzeugt. Die Funktion pausiert die Ausführung und die Steuerung wird an den Anrufer weitergeleitet. Wenn eine normale Funktion aufgerufen wird, wird die Ausführung unmittelbar begonnen und läuft bis zur Fertigstellung aus, wodurch ein Wert zurückgegeben wird. Ja, Sie können mehrere Ertragsanweisungen in einer einzelnen Funktion in Python verwenden. Wenn die Funktion aufgerufen wird, liefert sie jedes Mal einen Wert, wenn sie auf eine Ertragsanweisung stößt, deren Ausführung inneht und die Kontrolle an den Anrufer weitergibt. Wenn die nächste () -Methode der Funktion aufgerufen wird, wird die Ausführung fortgesetzt, von der sie aufgehört haben, bis sie auf die nächste Rendite -Anweisung trifft. Python? Sie können diese Ausnahme durch einen Versuch/außer Block verwenden. Hier ist ein Beispiel:

def Simple_Generator ():

Ertrag 1

Ausbeute 2

Ausbeute 3

gen = Simple_Generator ()

, während wahr:

Versuchen Sie:

drucken (next (gen))

außer Stopperation:

Break


In diesem Beispiel fangen wir die Ausnahme der Stopperation auf und brechen aus der Schleife aus, wenn es keine gibt, wenn es keine gibt Weitere Werte zu ergeben.

Kann ich das Keyword in einer Lambda -Funktion in Python verwenden? Dies liegt daran, dass Lambda -Funktionen auf einen einzelnen Ausdruck beschränkt sind und das Keyword für Ertrag einen Anweisungskontext führt. Wenn Sie eine Generatorfunktion erstellen müssen, müssen Sie eine DEF -Anweisung verwenden, um eine normale Funktion zu definieren.

Das obige ist der detaillierte Inhalt vonSchneller Tipp: Verstehen des Keywords in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1663
14
PHP-Tutorial
1266
29
C#-Tutorial
1239
24
CNCF ARM64 Pilot: Impact and Insights CNCF ARM64 Pilot: Impact and Insights Apr 15, 2025 am 08:27 AM

Dieses Pilotprogramm, eine Zusammenarbeit zwischen CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal und betätigten, rationalisiert ARM64 CI/CD für CNCF -Github -Projekte. Die Initiative befasst sich mit Sicherheitsbedenken und Leistung

Serverlose Bildverarbeitungspipeline mit AWS ECS und Lambda Serverlose Bildverarbeitungspipeline mit AWS ECS und Lambda Apr 18, 2025 am 08:28 AM

Dieses Tutorial führt Sie durch das Erstellen einer serverlosen Bildverarbeitungspipeline mit AWS -Diensten. Wir werden ein Next.JS -Frontend erstellen, der in einem ECS -Fargate -Cluster eingesetzt wird und mit einem API -Gateway, Lambda -Funktionen, S3 -Eimer und DynamoDB interagiert. Th

Top 21 Entwickler -Newsletter, die sich 2025 abonnieren können Top 21 Entwickler -Newsletter, die sich 2025 abonnieren können Apr 24, 2025 am 08:28 AM

Bleiben Sie über die neuesten technischen Trends mit diesen Top -Entwickler -Newsletters informiert! Diese kuratierte Liste bietet für jeden etwas, von KI -Enthusiasten bis hin zu erfahrenen Backend- und Frontend -Entwicklern. Wählen Sie Ihre Favoriten und sparen Sie Zeit, um nach REL zu suchen

See all articles