Gibt es eine Python-Funktion, die überprüft, ob ein Generator gestartet wurde?

Ich versuche eine Generatorfunktion zu definierenmycount() das kann mit der generatorfunktion zurückgesetzt werdensend(0) wie im folgenden Beispiel. Alles funktioniert gut, außer wenn ich es benutzesend(0) auf ein neues Generatorobjekt, das noch nicht gestartet wurde. In diesem Fall gibt es eineTypeError. Gibt es eine Funktion, die prüft, ob der Generator gestartet wurde oder muss ich die auffangen?TypeError und erstellen Sie ein neues Generatorobjekt mitmycount(0) in diesem Fall?

def mycount(value):
    while True:
        v = yield value
        if v == None:
            value = value + 1
        else:
            value = v

g = mycount(3)
print(next(g))    # prints 3
print(next(g))    # prints 4
print(g.send(0))  # prints 0
print(next(g))    # prints 1
print(next(g))    # prints 2

g2 = mycount(3)
g2.send(0)
# TypeError: can't send non-None value to a just-started generator

Antworten auf die Frage(4)

Ihre Antwort auf die Frage