【问题标题】:No return statement but not returning None?没有返回语句但不返回 None?
【发布时间】:2021-08-13 08:10:25
【问题描述】:

不太了解return 声明。

def func():
    print("test")
print(func())

正如预期的那样,这给出了:

test
None

因为func() 被执行并打印了“test”。另外,由于没有return 语句,所以返回None 值。

但是,在这段代码中,当我删除外部 print 语句时:

def func():
    print("test")
func()

只提供: test

这里是我不明白的地方。我读到默认情况下,所有函数都返回 None 值。如果没有return 语句,那么您将得到None。但是,在这两段代码中,我都没有 return 语句。为什么第二个代码也不给None 值?

【问题讨论】:

  • 在第一种情况下,您有 2 个打印调用。您在输出中得到 2 行。在第二种情况下,您只有一个打印调用。你只得到一行输出。与return 无关。该函数仍然返回None - 你只是不要print 它。
  • 因为您不打印该功能。想象一下将函数存储在变量中。那个 var 不会有 None
  • 我只是想到了我从视频中看到的一种可能性。它说在第一个代码中,func() 被执行,给出“test”和“None”(因为没有return 语句)。这两个值都作为参数传递给外部print 语句。由于外部print 语句仅将“test”值注册为有效,因此它会打印“test”和“None”。由于第二个代码没有外部print 语句,“None”没有被评估,因此没有打印出来?这个逻辑正确吗?
  • 哦,所以当他们说函数将返回 None 时,我必须打印 None 才能看到它?返回 None 并不意味着在输出终端上显示 None ?
  • 没有 return 语句的函数默认返回 None ,但这并不意味着它将打印到标准输入/输出,但是当您明确尝试打印该函数的输出时,它将打印None

标签: python function return nonetype


【解决方案1】:

来自cmets:

哦,所以当他们说函数将返回 None 时,我必须打印 None 才能看到它?返回 None 不代表输出端不显示 None?

正确。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 2018-01-04
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2019-10-13
    相关资源
    最近更新 更多