带有 yield 的函数在 Python 中被称之为 generator(生成器),yield 功能与函数中的return 作用类似,不过其在数据量比较大时作用比较明显,因为其是一个个的将数据取回的,不会象return一样,将要返回的数据都放在内存里一次性返回。使用yield就会避免java中常会出现的一个错误 --- 内存溢出(out of memory)。由于yield的概念比较抽象,理解起来并不是特别容易,下面就摘自从网上看到的几张图来理解,比较容易。

yield-1
yield-1

yield-2
yield-2

yield-3
yield-3

yield-4
yield-4

yield-5
yield-5