经常会看见,python函数中带有yield关键字,那么yield是什么,有什么作用?

答案:可以理解yield是一个生成器;

作用:遇到yield关键字,函数会直接返回yield值,相当于return;不同的是下次调用的时候会从yield之后的代码开始执行。

,因为它并不把所有的值放在内存中,它是实时地生成数据:

有人可能会说,我直接迭代,遍历多好,为什么要用生成器,然后去遍历生成器,这多麻烦。

那么你要了解,list列表,所有数据是存储在内存中的。如果数据量非常大,会非常耗内存。

yield是一个特殊的return?

不同的是执行过程中遇到yield关键字,会阻断,yield

返回的是一个生成器。

yield 关键字,然后返回 yield 后的值作为第一次迭代的返回值.

然后,每次执行这个函数都会继续执行你在函数内部定义的那个循环的下一次,再返回那个值,直到没有可以返回的。

注意,当函数中出现yield,该函数返回的就是一个生成器。不在是普通函数。

除了for循环取值,你也可以通过next()来取下一个值。