生成器函数与函数的区别

生成器函数严格意义来说只是一种形式象函数但世界为生成器的特殊类型,二者相同点如下:
1、二者的定义格式相同,都是使用def语句;
2、二者都可以有return语句,也可以没有;
3、二者的函数体格式相同。

差异点如下:
1、生成器函数中主要使用yield返回数据,而函数主要使用return返回数据;
2、二者返回值不同,函数可以根据需要返回任何类型,生成器函数执行返回的是一个生成器;
3、函数除非递归调用,一般调用一次就执行一次完整逻辑,而生成器函数调用只是执行生成器的定义,返回一个生成器的类型,函数体内的代码并没有全部执行;
4、函数执行一次执行完整,生成器可以通过和外部的交互进行多次循环返回数据。
具体关于生成器的知识请参考《神秘而强大的Python生成器精讲》

原文地址:https://www.cnblogs.com/LaoYuanPython/p/11104846.html