我使用Python定义了一个函数,如下所示:
def output ():
print "Hello, world!"
output ()
在Windows命令行中运行此脚本时,它将返回:
Hello, world!
我想澄清的是:为什么会这样?尽管没有定义返回值,为什么值输出?
答案 0 :(得分:1)
返回值仅在思考程序如何工作的上下文中具有意义。对于最终用户,他们可能对返回值一无所知。
单独的概念输出是用户通常看到的。在这种情况下,程序使用print语句,该语句输出到名为stdout
的输出流。此输出流通常由程序运行的控制台读取,因此输出到控制台。
该函数的实际返回值为None
,但永远不会输出给用户。
答案 1 :(得分:1)
方法的默认返回值为None
。如果您执行以下操作:
res = output()
并打印res
,它将是None
。默认情况下,如果未指定 return ,则始终会返回None
。
>>> def output():
... print "Hello, world!"
...
>>> res = output()
Hello, world!
>>> res
>>> type(res)
<type 'NoneType'>
但是,您仍然会在屏幕上打印一些内容,因为print
语句将在调用方法时运行。
答案 2 :(得分:0)
打印将打印到标准输出。这就是原因。