#生成器(generator), 当我们迭代一个长度巨大的序列时, 是非常消耗内存的,
# 如果这个序列是按照某种算法推算出来的, 那么我们可以使用生成器, 边遍历, 边生成生成遍历的数据
# 这样就节省了大量的空间
# 生成器的特殊在于, 可以用yield暂停原本会继续下去的循环, 再通过next()和send()来恢复
# 每次yield的时候返回对应的值
def fibonacci(n): # 生成器函数 - 斐波那契
c, d, counter = 0, 1, 0
while True:
if counter > n :
return
yield c
c, d = d, c + d
counter += 1
f = fibonacci(10) #获得一个迭代器
while True:
try:
print( next(f), end=" ")
except StopIteration:
break
网友评论