生成器是在函数中使用yield语句,生成一个结果序列,而且不仅仅是一个值。例如:
def countdown(n):
print ("Counting down")
while n > 0:
yield n #生产一个值(n)
n -= 1
1.12.1 next()方法
通过连续调用next()方法(在python3中_ _next_ _())生成结果序列。例如:
>>> c =countdown(5)
>>> c.next()
Counting down
5
>>> c.next()
4
>>> c.next()
3
1.12.2 for循环
>>> for i in countdown(5):
print (i,)
输出结果:
Counting down
(5,)
(4,)
(3,)
(2,)
(1,)
>>> for i in countdown(5):
print i,
输出结果:
Counting down
5 4 3 2 1