什么是生成器(generator) ----------------------------- 生成器是一个函数,允许你返回一个值, 然后"暂停"函数代码的执行, 生成器返回生成器迭代器的函数。它看起来像一个正常的函数,除了它包含了生成一系列 可用于for循环的值的yield表达式,或者可以一次使用next()函数检索一个值。 生成器是一个带yield 语句的函数。通常一个函数只返回一次,但一个生成器函数 能暂停执行并返回一个中间的结果----那就是yield 语句的功能, 返回一个值给 调用者并暂停执行。当对生成器调用next()函数的时候,它会准确地从离开地方继续执行。 例如一个简单的生成器函数:: def gen(): # defines a generator function yield 1 yield 3 yield 5 yield 7 g = gen() print(type(g)) #生成器对象 print(next(g), next(g), next(g), next(g)) #依次是1, 3, 5, 7 for i in gen(): print(i) #输出四行数据,依次是1,3,5,7 gen函数返回一个生成器对象,通常用于for in迭代使用,它可以迭代调用next()函数。 yield语句 '''''''''''''''''''''''''' yield语句仅用于定义一个生成器(generator)函数。 在函数定义中 使用yield就使该定义创建一个生成器函数,而不是一个正常的函数。 进一步阅读请参考 https://docs.python.org/3/reference/expressions.html#yield-expressions