Im Gegensatz zu einer normalen Funktion scheint sie sich an den zuletzt zurückgegebenen Wert zu erinnern. Beim Aufruf wird der folgende Wert zurückgegeben:
generator.py
def counter(num=10):
for _ in range(num):
yield 'run'
def greeting():
yield 'good morning'
yield 'good afternoon'
yield 'good night'
for g in greeting():
print(g)
g=greeting()
print(next(g)) #good morning
print(next(g)) #good afternoon
c=counter()
print(next(c))
print(next(c))
print(next(c))
print(next(c))
print(next(c))
print(next(c))
print(next(c))
print(next(c))
print(next(c))
print(next(c))
#print(next(c))Ich bekomme eine Fehlermeldung
Ausgabe:
good morning
good afternoon
good night
good morning
good afternoon
run
run
run
run
run
run
run
run
run
run
Recommended Posts