Unendlicher Generator

Aus Micropython
Zur Navigation springen Zur Suche springen

Ein Generator in Python liefert nacheinander seine Werte aus und ist dann leer. Hier ist ein Weg, wie ein Generator nach dem letzten Wert, wieder mit dem ersten Wert weitermacht:

def infinite_repeater(sequence):
    while True:
        for item in sequence:
            yield item


repeater = infinite_repeater([1, 2, 3, 4])

for _ in range(10):
    print(next(repeater))

Einen Befehl um ihn direkt wieder auf den Anfang zu setzen gibt es nicht. Aber mit einer Neuinitialisierung erreicht man diesen Effekt:

repeater = infinite_repeater([1, 2, 3, 4])