Python 中 Yield 和 Return 的区别

2024 年 12 月 3 日 | 阅读 4 分钟

Python Yield 语句

生成器是通过在 Python 中使用 yield 语句定义的。通常,它会将一个普通的 Python 函数转换为一个生成器。

yield 语句会暂停函数并将其值返回给函数调用者,然后从上次暂停的地方继续执行。yield 语句可以被调用多次。而 return 语句则会终止函数的执行,并将值返回给调用者。如果没有 return 语句,函数将不返回任何东西。在 Python 生成器中,yield 函数用于替代 return 函数,它可以在不破坏局部变量的情况下将值发送回用户。

什么是生成器?

在 Python 中,生成器是一种特殊的迭代器,它允许你迭代一系列值。生成器是使用函数和 yield 语句定义的。与返回单个值并终止的常规函数不同,生成器可以一次生成多个值,并在每次调用之间保持其状态。这使得生成器在内存使用上非常高效,并且适用于处理大型数据集或无限序列。

简单来说,生成器指的是返回一个可迭代的迭代器的函数。在 Python 中,创建生成器非常容易,它使用 yield 语句而不是 return 语句。

示例 1

输出

151
17
5628
17

示例 2

输出

The number of 'a' in the string is : 4

Python Return 语句

return 语句通常用于结束执行并将值返回给调用者。return 语句可以返回所有类型的值,并且在没有传递表达式给 return 语句时,它不返回任何东西。函数中可以有多个 return 语句,但对于函数的任何特定调用,只有一个语句会被执行。

我们可以看到 return 语句位于函数块的末尾,用于返回函数内所有语句执行的最终输出。此外,它也可以出现在函数块的早期,用于停止块中所有后续语句的执行。程序在调用处的执行会随着 return 语句而快速恢复。如果没有指定值,则返回 None。

示例 1

输出

Addition:  101
Subtraction:  67
Multiplication:  1428
Remainder:  16

示例 2

输出

Welcome to Javatpoint Python Tutorials
Stella Greens

yield 和 return 语句之间的区别

Yield 语句Return Statement (返回语句)
Yield 返回生成器对象。将结果返回给调用者。
可以多次运行。只运行一次。
yield 语句后的代码可以在下一次函数调用时执行。return 语句后的代码将不会执行。
该语句可以从暂停或中断的地方恢复执行。该语句中的函数调用只会从头开始执行函数。
yield 语句会暂停函数,并将值返回给函数调用者。return 语句会退出执行,并将值返回给调用者。

结论

在上面的文章中,我们已经了解了 return 和 yield 语句的区别。此外,我们还理解了这两种语句的概念,并知道如何在 Python 程序中使用它们。


下一主题Graphene Python