2016-10-03 163 views
-8

我已经定义使用Python如下功能:为什么这个函数返回这个值?

def output(): 
    print "Hello, world!" 

output() 

当这个脚本在Windows命令行中运行,则回复:

Hello, world! 

我想说明的是:这是为什么?尽管没有定义返回值,为什么还是输出值?

+5

因为你正在调用一个带有'print'的方法。 'print'将会*打印*到屏幕上。 – idjaw

+2

字符串“Hello,world!”没有被返回,但是打印到标准输出。 –

+2

方法的默认返回值是'None'。如果你做'res = output()'并打印出'res',它将是'无'。但是你仍然会得到一些打印出来的东西,因为在调用方法时'print'语句会运行。 – idjaw

回答

1

该方法的默认返回值为None。如果您执行以下操作:

res = output()

,并打印出res,这将是None。默认情况下,如果未指定返回,则始终返回None

>>> def output(): 
...  print "Hello, world!" 
... 
>>> res = output() 
Hello, world! 
>>> res 
>>> type(res) 
<type 'NoneType'> 

但是,你仍然会得到的东西打印到屏幕上,因为当该方法被称为print语句将运行。

0

打印将打印到标准输出。这就是为什么。

+0

谢谢你的回答,但是我不太明白你在说什么。一些更多的博览会将不胜感激。谢谢! – seeker

1

返回值只有在思考程序如何工作的情况下才有意义。对于最终用户来说,他们可能对返回值一无所知。

一个单独的概念,输出,是用户通常看到的。在这种情况下,程序使用打印语句,输出到名为stdout的输出流。该输出流通常由程序从中运行的控制台读取,然后输出到控制台。

该函数的实际返回值是None,但它永远不会输出给用户。