【问题标题】: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 谢谢,我现在明白了。如果你能把它写下来作为答案,我很乐意接受。再次感谢

标签: python function command-line


【解决方案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】:

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

      【讨论】:

      • 感谢您的回答,但我不太明白您在说什么。一些更多的说明将不胜感激。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 2019-10-05
      • 1970-01-01
      相关资源
      最近更新 更多