如果我們考慮以下發電機和發電機功能:爲什麼通過發電機進入發電機使用其發電機功能?
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]
爲什麼內置ITER功能已被調用到發電機函數發生器?該代碼仍然運行,沒有它打印正確的值。
嘗試刪除該行並傳遞一個列表。 'take([1,2,3],2)' –