生成器:
当一个序列或者元祖中的数据特别大,但是我们又不需要同时使用这些数据,如果一次性把数据读到内存中,那么对计算机内存是一个很大的浪费,甚至可能会把内存撑爆了,python中有这样的一个数据结构,就是将我们需要的数据通过循环不断返回后续的元素,而不是一次性打开全部元素,从而节省大量的内存空间,这种机制就是 generator 生成器
- 生成器对象
通过next()函数获取到generator中下一个返回值,这个跟迭代器(Iterator)一样,都可以通过next()函数获取到下一个返回值
- 生成器函数
在 Python中,使用yield返回的函数会变成一个生成器函数(generator)。 在调用生成器函数的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行next()方法时从当前位置继续运行。
函数中使用了yield关键字时,就会将这个函数变成生成器函数,调用这个函数就会得到一个生成器对象,在生成器函数中当代码执行到yield关键字时,函数会暂停并保存当前所有的运行信息,并返回yield表达式的值,等到生成器对象再次执行next()方法时会从当前位置继续执行