这里有一段代码,其中不需要使用StopIteration,中断就足够了:li = [12,51,98,4,36,99,33,1,125,78,9,369,48,47,214,4]
def gen( cont, header='something', footer='anything' ):
yield header
for x in cont:
if x<100:
yield x
else:
yield footer
break
for y in gen(li):
print '1 or 2 digits only:',y
结果1 or 2 digits only: something
1 or 2 digits only: 12
1 or 2 digits only: 51
1 or 2 digits only: 98
1 or 2 digits only: 4
1 or 2 digits only: 36
1 or 2 digits only: 99
1 or 2 digits only: 33
1 or 2 digits only: 1
1 or 2 digits only: anything
现在,这里有一个相当复杂的代码,在我看来,如果不使用StopIteration,我们是做不到的。你对此感兴趣吗?import Queue
q = Queue.Queue()
li = [12,51,98,4,36,99,33,1,125,78,9,369,48,47,214,4]