ich steh grad auf dem Schlauch und komme einfach nicht drauf. Ich suche eine Möglichkeit, wie ich ein `callable` definieren kann, welches beim Aufruf eine intern definierte Datenstruktur iteriert, so dass bei jedem Aufruf des `callables` der nächste Wert zurückgegeben wird, solange bis das Iterable am Ende angelangt ist.
Zur Verdeutlichung mal als Beispiel:
Code: Alles auswählen
def func():
data = ["Hello", "World"]
# magic
func()
-> Hello
func()
-> World
Ich kann das natürlich so angehen:
Code: Alles auswählen
In [153]: def foo():
.....: for item in ("Hello", "World"):
.....: yield item
.....:
.....:
In [154]: def call(iterator):
.....: return iterator.next()
.....:
In [155]: iobj = foo()
In [156]: call(iobj)
Out[156]: 'Hello'
In [157]: call(iobj)
Out[157]: 'World'
Das kann doch nicht so schwer sein... :K