生成器

生成器是是一个带有yield语句的函数,一个函数或者子程序只返回一次,但一个生成器能暂停执行并返回一个中间的结果---那就是yield语句的功能,返回一个值给调用者并暂停执行。当生成器的next方法被调用的时候,它会准确地从离开地方继续。

from random import randint
def randGen(aList):
    while len(aList) > 0:
        yield aList.pop(randint(0, len(aList)))
for item in randGen(['rock', 'paper', 'scissors']):
    print item

Python 2.5中,一些加强特性加入到生成器中,除了next()来获得下个生成的值,用户可以将值送给生成器[send()],在生成器中抛出异常,以及要求生成器退出[close()]。

你可能感兴趣的:(生成器)