【发布时间】: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