python - 自动化无聊的东西中的无值/代码
问题描述
文本说如下:
在 Python 中有一个名为 None 的值,它表示没有值。None 是 NoneType 数据类型的唯一值。(其他编程语言可能将此值称为 null、nil 或 undefined。)就像布尔 True 和 False 值一样,None 必须使用大写字母 N 键入。
当您需要存储一些不会与变量中的实际值混淆的东西时,这种没有值的值会很有帮助。一个使用 None 的地方是作为 print() 的返回值。print() 函数在屏幕上显示文本,但它不需要像 len() 或 input() 那样返回任何内容。但由于所有函数调用都需要计算返回值,因此 print() 返回 None。要查看此操作,请在交互式 shell 中输入以下内容:
>>> spam = print('Hello!')
Hello!
>>> None == spam
True
在幕后,Python 将 return None 添加到任何没有 return 语句的函数定义的末尾。这类似于 while 或 for 循环如何以 continue 语句隐式结束。此外,如果您使用没有值的 return 语句(即,只有 return 关键字本身),则返回 None。
我想我理解 None 是什么,但我不理解代码。为什么它spam
等于None
它被分配的时间print('Hello!')
?当我spam
在分配后立即进入交互式外壳时,它什么也不返回。我有一种感觉,这是因为在调用并返回一个值Hello!
时会立即忘记该参数,但是如果我已将其定义为传递参数的函数,它是否不应该总是返回?print()
spam
print()
Hello!
Hello!
解决方案
为了添加注释并更清楚,您的print()
函数打印 'Hello!'
到屏幕并返回 None
到程序。打印和返回不是一回事——打印是给用户的,返回是给程序的。打印只进入屏幕并且(通常)不能被程序进一步使用。返回的值可以存储在变量中,例如spam
,并进一步使用。
打印和返回之间的区别非常重要,以至于 Python 标准是,如果一个函数打印一些东西,它不应该返回除 之外None
的任何值,如果函数返回一个值,它不应该打印任何东西。许多其他语言(最臭名昭著的 C)没有遵循这个标准,Python 也没有始终如一地遵循这个标准,但这种区别确实有助于 Python 的清晰性。如果您想进一步研究这个概念,请搜索编程中的“副作用”。
推荐阅读
- angular - 角度库中的角度依赖注入问题
- reactjs - React/JSX 样式代码,标准源
- jmeter - 使用 JMeter 从文件夹中删除上传的文件
- java - 在Java中,“this”在继承该方法的子类上调用的超类方法中表示什么?
- pandas - 熊猫:按多列分组,找到最大值并将其他列保留在数据框中
- autodesk-forge - BIM 360 Revit 2021 DocumentOpened 事件错误
- ruby-on-rails - ActiveRecord 模型是否存在?运行缓慢 - 找到解决方案
- mysql - mysqldump 例程字符集编码问题
- python - 如何通过删除两个条件之间的所有内容来压缩 Pandas 中的行
- javascript - 根据页面 URL 更改部分 img src