为啥这个函数会返回这个值? [复制]
Posted
技术标签:
【中文标题】为啥这个函数会返回这个值? [复制]【英文标题】:Why does this function return this value? [duplicate]为什么这个函数会返回这个值? [复制] 【发布时间】:2017-02-11 22:24:41 【问题描述】:我使用 Python 定义了一个函数如下:
def output ():
print "Hello, world!"
output ()
当此脚本在 windows 命令行中运行时,它将返回:
Hello, world!
我想澄清的是:为什么会这样?为什么没有定义返回值却输出了值?
【问题讨论】:
因为您正在调用一个内部带有print
的方法。 print
将打印到屏幕上。
字符串“你好,世界!”不返回,而是打印到标准输出。
该方法的默认返回是None
。如果您执行res = output()
并打印出res
,它将是None
。但是您仍然会在屏幕上打印一些内容,因为调用该方法时会运行 print
语句。
@idjaw 谢谢,我现在明白了。如果你能把它写下来作为答案,我很乐意接受。再次感谢
【参考方案1】:
该方法的默认返回是None
。如果您执行以下操作:
res = output()
并打印出res
,它将是None
。默认情况下,None
在不指定 return 时总是返回。
>>> def output():
... print "Hello, world!"
...
>>> res = output()
Hello, world!
>>> res
>>> type(res)
<type 'NoneType'>
但是,您仍然会在屏幕上打印一些内容,因为调用该方法时会运行 print
语句。
【讨论】:
【参考方案2】:返回值仅在思考程序如何工作的上下文中才有意义。对于最终用户来说,他们可能对返回值一无所知。
一个单独的概念,输出,是用户通常看到的。在这种情况下,程序使用了一个 print 语句,它输出到一个名为stdout
的输出流。此输出流通常由运行程序的控制台读取,然后输出到控制台。
该函数的实际返回值是None
,但它从未输出给用户。
【讨论】:
【参考方案3】:打印将打印到标准输出。这就是为什么。
【讨论】:
感谢您的回答,但我不太明白您在说什么。一些更多的说明将不胜感激。谢谢!以上是关于为啥这个函数会返回这个值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章