自动完成无聊内容中的无值/代码

时间:2019-06-02 19:33:07

标签: python function nonetype

文本内容如下:

  

在Python中,有一个名为None的值,表示没有值。 None是NoneType数据类型的唯一值。 (其他编程语言可能将此值称为null,nil或undefined。)就像布尔值True和False一样,None必须以大写N键入。

     

当您需要将不会与真实值混淆的某些内容存储在变量中时,此无值值会很有用。使用None的一个地方是print()的返回值。 print()函数在屏幕上显示文本,但是不需要像len()或input()一样返回任何内容。但是由于所有函数调用都需要求值返回值,因此print()返回None。要查看实际效果,请在交互式外壳程序中输入以下内容:

>>> spam = print('Hello!')
Hello!
>>> None == spam
True
  

在后台,Python在没有return语句的任何函数定义的末尾添加return None。这类似于while或for循环隐式以continue语句结束的方式。另外,如果您使用没有值的return语句(即,仅是return关键字本身),则将返回None。

我想我理解None是什么,但是我不理解代码。为什么spam等于None时被分配为print('Hello!')?在分配后立即在交互式外壳程序中输入spam时,它不会返回任何内容。我感觉是因为调用Hello!并返回一个值时,参数print()立即被忘记了,但是如果我将spam定义为print()函数,传递的参数Hello!是否应该不总是返回Hello!

2 个答案:

答案 0 :(得分:1)

要添加到注释中并使其更清晰,请在屏幕上打印 print() 'Hello!'函数并返回 None到程序。打印和返回不是一回事-打印是针对用户的,返回是针对程序的。打印仅显示在屏幕上,并且(通常)无法被程序进一步使用。返回的值可以存储在变量中,例如spam,并进一步使用。

打印和返回之间的区别非常重要,以至于Python标准是:如果函数打印某些内容,则它不应返回None以外的任何值;如果函数返回某个值,则其不应打印任何内容。该标准没有被其他许多语言(最著名的是C)所遵循,并且在Python中并未得到一致遵循,但是这种区别确实有助于Python的清晰度。如果您想进一步研究这个概念,请在编程中搜索“副作用”。

答案 1 :(得分:-1)

您正在将print()分配给None函数,该函数不会返回任何内容,也就是List<NestedProp>