Wenn wir den folgenden Generator und die Generatorfunktion betrachten:Warum sollte ein Generator in seine Generatorfunktion übergeben werden?
def integers():
"""Infinite sequence of integers."""
i = 1
while True:
yield i
i = i + 1
def take(n, seq):
"""Returns first n values from the given sequence."""
seq = iter(seq)
result = []
try:
for i in range(n):
result.append(seq.next())
except StopIteration:
pass
return result
print take(5, integers()) # prints [1,2,3,4,5]
Warum die iter funktions eingebaut hat auf den Generator im Generatorfunktion aufgerufen werden? Der Code wird weiterhin ausgeführt und druckt den richtigen Wert ohne es aus.
Versuchen Sie, diese Zeile zu entfernen und eine Liste zu übergeben. 'take ([1, 2, 3], 2)' –