比如
def html():
yield 'header'
for i in range(5):
yield i
yield 'footer'
h = html()#此时h变量就是一个生成器.
for x in h:#遍历生成器
print x
怎么理解这个函数呢?def html():
ret = []
ret.append('header')
for i in range(5):
ret.append(i)
ret.append('footer')
return ret
可以看到,yield语句没了,所有东西都在ret这个序列.def A():
print 'hehe'
yield 1
yield 2
当我们A()时,并不会print ‘hehe‘,而只有当我们遍历的时候,它才开始执行,从函数体第一行代码直到第一个yield,而后继续往下执行代码到下一个yield,如此下去.
原文地址:http://blog.csdn.net/handsomekang/article/details/40889703