return
语句有什么作用?它应该如何在 Python 中使用?
return
与 print
有何不同?
通常,人们尝试在函数内部的循环中使用 print
以查看多个值,并希望能够使用外部的结果。它们需要返回,但 return
第一次退出函数。请参阅 如何使用 `return` 从 for 循环中取回多个值?我可以把它们放在一个列表中吗? .
很多时候,初学者会写一个函数,最终 print
s something 而不是 return
,然后也尝试 print
出乎意料的结果,导致 None
。这可以通过最后不 print
ing 来解决;但该函数 通常 应该是 return
值,以便调用者可以 print
编辑。请参阅 为什么在我的函数输出后打印“无”? .
偶尔在 3.x 中,人们尝试将 print
的结果 分配 给一个名称,或者在另一个表达式中使用它,例如 input(print('prompt:'))
。在 3.x 中, print
是一个函数,所以这不是语法错误;但它返回 None
而不是显示的内容。请参阅 为什么 print 函数返回 None? .
有时,人们编写的代码会尝试 print
递归 调用的结果,而不是 return
正确执行它。就像函数只是被调用一样,这不能通过递归将值传播回来。请参阅 为什么我的递归函数返回 None? .
考虑 如何从函数中获取结果(输出)?以后如何使用结果? 对于简单的关于 如何使用 的问题 return
,而不考虑 print
。
原文由 Hitesh Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议
print()
函数在控制台中写入(即“打印”)一个字符串。return
语句导致您的函数退出并将值返回给其调用者。一般来说,函数的要点是接受输入并返回一些东西。return
语句在函数准备好向其调用者返回值时使用。例如,这是一个同时使用
print()
和return
的函数:现在您可以运行调用 foo 的代码,如下所示:
如果您将其作为脚本(例如
.py
文件)而不是在 Python 解释器中运行,您将获得以下输出:我希望这能让它更清楚。解释器将返回值写入控制台,这样我就可以明白为什么有人会感到困惑。
这是解释器的另一个例子,它证明了这一点:
您可以看到,当从
foo()
调用bar()
时,1 未写入控制台。相反,它用于计算从bar()
返回的值。print()
是一个会产生副作用的函数(它会在控制台中写入一个字符串),但会继续执行下一条语句。return
导致函数停止执行并将值返回给调用它的任何对象。