Wie Generatoren in Python arbeiten
Ich bin ein Anfänger in Python und Programmierung. Generatoren sind für neue Programmierer etwas zu kompliziert. Hier ist meine Theorie zu Generatorfunktionen in Python:
Jede Funktion enthält ayield
Die Anweisung gibt ein Generatorobjekt zurück
Ein Generatorobjekt ist ein Stapel, der einen Zustand enthält
Jedes Mal, wenn ich anrufe.next
method Python extrahiert den Zustand der Funktion und wenn es eine andere Yield-Anweisung findet, bindet es den Zustand erneut und löscht den vorherigen Zustand:
Beispiel:
[
[state1] # Stack contains states and states contain info about the function
[state2] # State1 will be deleted when python finds the other yield?
]
Das mag natürlich wie die dümmste Theorie der Welt sein, aber vergib mir, ich bin nur neu im Codewort.
Meine Fragen:
Was Python intern macht, um die Zustände zu speichern?
Tutyield
Anweisung fügt einen Status zu einem Stapel hinzu, falls vorhanden?
Welcher Ertrag entsteht intern? Ich verstehe, dass Yield ein Generator-Objekt erzeugt. Ich frage mich jedoch, welche Generator-Objekte sie enthalten, damit sie funktionieren. sind sie nur ein Stapel / eine Liste von Zuständen und wir, die Sie verwenden.next
Methode, um jeden Zustand zu extrahieren und Python wird die Funktion mit dem indizierten Zustand automatisch aufrufen, zum Beispiel?