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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage