- 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。
- 使用yield的函数被称为generator,generator就是一个Iterator。generator调用next,遇到yield语句返回。再次执行时从上次的yield语句处继续执行。
- 创建generator的方法:1. 把列表表达式的[]改为(); 2.把函数中的print改为yield
# -*- coding:utf-8 -*-
import sys
def fibonacci(n):
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10)
while True:
try:
print (next(f))
except StopIteration:
sys.exit()