python中yield的使用注意

python中yield的使用注意
python中yield的使用注意

(推荐操作系统:windows7系统、Python 3.9.1、DELL G3电脑。)

1、说明

一旦在函数中使用了yield,它就变成了生成函数。但 yield 不能和 return 共存,并且 yield 只能定义在函数中。当我们调用这个函数时,函数内部的代码不会立即执行,所以函数只是返回一个生成器对象。当我们用for迭代它时,函数中的代码将被执行。

2、实例

python3 新增了 yield from 语法,它相当于 for + yield。比如:

yield from a()
 
# 等同于下面
for i in a():
    yield i

拓展:yield 和 return 的区别:

return 的时候这个函数的局部变量都被销毁了;

所有 return 是得到所有结果之后的返回;

yield 是产生了一个可以恢复的函数(生成器),恢复了局部变量;

生成器只有在调用 .next() 时才运行函数生成一个结果。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注