Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Einführung in Generatorfunktionen und Yield | Python Iterators
Funktionale Programmierkonzepte in Python

bookEinführung in Generatorfunktionen und Yield

Swipe um das Menü anzuzeigen

Generator-Funktionen sind eine besondere Art von Funktionen in Python, mit denen sich Iteratoren auf einfache und übersichtliche Weise erstellen lassen. Im Gegensatz zu normalen Funktionen, die einen einzelnen Wert zurückgeben und dann beenden, können Generator-Funktionen ihre Ausführung anhalten und später fortsetzen, wobei sie eine Reihe von Werten nacheinander erzeugen.

Note
Definition

yield ist ein Python-Schlüsselwort, das innerhalb von Generator-Funktionen verwendet wird, um einen Wert zu erzeugen und den Zustand der Funktion anzuhalten. Wenn der Generator fortgesetzt wird, läuft er dort weiter, wo er aufgehört hat.

Dadurch kann über Sequenzen jeweils ein Wert nach dem anderen iteriert werden, ohne Zwischenlisten zu erstellen, was den Code speichereffizienter macht.

Wie funktionieren Generator-Funktionen?

Eine Generator-Funktion sieht aus wie eine normale Funktion, verwendet jedoch das Schlüsselwort yield anstelle von return. Wenn Python auf die yield-Anweisung trifft, wird die Ausführung der Funktion angehalten und der erzeugte Wert an den Aufrufer zurückgegeben. Beim nächsten Anfordern eines Wertes wird die Funktion genau dort fortgesetzt, wo sie unterbrochen wurde.

Funktionsweise einer Generator-Funktion

  1. Eine Funktion mit def definieren und mindestens eine yield-Anweisung einfügen;
  2. Beim Aufruf der Funktion wird der Code darin nicht sofort ausgeführt. Stattdessen wird ein Generator-Objekt zurückgegeben;
  3. Jedes Mal, wenn der nächste Wert angefordert wird (mit next() oder einer for-Schleife), läuft die Funktion bis zur nächsten yield-Anweisung;
  4. Die yield-Anweisung gibt einen Wert an den Aufrufer zurück und pausiert den Zustand der Funktion;
  5. Wird ein weiterer Wert angefordert, setzt die Funktion nach dem letzten yield fort;
  6. Die Funktion läuft weiter, bis keine Werte mehr vorhanden sind oder ein return oder das Ende des Codes erreicht wird.

Vorteile der Verwendung von Generator-Funktionen:

  • Speicherersparnis durch Erzeugung der Elemente einzeln statt durch Erstellen großer Listen;
  • Lesbarer und wartbarer Code für Datenströme oder Sequenzen;
  • Einfache Verarbeitung unendlicher oder sehr großer Datenmengen, ohne alles in den Speicher zu laden.

Generator-Funktionen sind ein leistungsfähiges Werkzeug für effiziente Datenverarbeitung und unerlässlich für das Beherrschen des funktionalen Programmierstils in Python. Im nächsten Schritt folgt eine praktische Einführung in das Schreiben und Verwenden von Generator-Funktionen anhand von Codebeispielen.

question mark

Was bewirkt das Schlüsselwort yield in einer Python-Generatorfunktion?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 5. Kapitel 4
some-alt