详解Python中的null是什么
作者:Python大数据分析 发布时间:2022-11-30 15:33:56
标签:Python,null
在知乎上遇到一个问题,说:计算机中的「null」怎么读?
null正确的发音是/n^l/,有点类似四声‘纳儿’,在计算机中null是一种类型,代表空字符,没有与任何一个值绑定并且存储空间也没有存储值。
Python中其实没有null这个词,取而代之的是None对象,即特殊类型NoneType,代表空、没有。
None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
>>> NoneType
NameError: name 'NoneType' is not defined
>>> type(None)
NoneType
None也不能理解为空字符'',因为空字符的类型是字符串。
>>>type('')
<class ''str'>
虽然表示空,但None是一个具体的Python对象,这和null含义不一样。
在Python中返回None:
>>> def has_no_return():
... pass
>>> has_no_return()
>>> print(has_no_return())
None
你可以使用 Python 的标识函数 id()
检查 None 的唯一性,它返回某一对象的唯一标识符,如果两个变量的 id 相同,那么它们实际上指向的是同一个对象。
>>> NoneType = type(None)
>>> id(None)
10748000
>>> my_none = NoneType()
>>> id(my_none)
10748000
>>> another_none = NoneType()
>>> id(another_none)
10748000
>>> def function_that_does_nothing(): pass
>>> return_value = function_that_does_nothing()
>>> id(return_value)
10748000
在Python中,None的用处有很多,比如作为变量初始值、作为函数默认参数、作为空值等等。
变量初始值
>>> print(bar)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'bar' is not defined
>>> bar = None
>>> print(bar)
None
函数默认参数
def bad_function(new_elem, starter_list=[]):
starter_list.append(new_elem)
return starter_list
空值
>>> class DontAppend: pass
...
>>> def good_function(new_elem=DontAppend, starter_list=None):
... if starter_list is None:
... starter_list = []
... if new_elem is not DontAppend:
... starter_list.append(new_elem)
... return starter_list
...
>>> good_function(starter_list=my_list)
['a', 'b', 'c', 'd', 'e']
>>> good_function(None, my_list)
['a', 'b', 'c', 'd', 'e', None]
总得来说,None是一个对象,而null是一个类型。
Python中沒有null,只有None,None有自己的特殊类型NoneType。
None不等于0、任何空字符串、False等。
在Python中,None、False、0、””(空字符串)、、()(空元組)、{}(空字典)都相当于False。
来源:https://zhuanlan.zhihu.com/p/564502153


猜你喜欢
- 1、不指定开始和结束的索引[:],这样得到的切片就可以包含整个列表,然后给切片一个新的变量,从而实现复制列表。2、创建原始列表的副本,两个列
- 正则表达式是一种进行模式匹配和文本操纵的功能强大的工具。正则表达式灵活、易用,按照它的语法规则,随需构造出的匹配模式就能够从原始文本中筛选出
- 本篇的主题是 rbac权限控制的详细操作步骤,注意是操作步骤哦,关于配置与rbac的搭建,我们在yii2搭建完美后台并实现rbac权限控制实
- 1,目标环境Windows 7 64位2,材料(1)VC++2010 发布包(64位)(2)MySQL 5.6.36 Windows x64
- 最近想尝试一下在IBM Bluemix上使用Python语言创建Web应用程序,所以需要在本地搭建Python Web的开发测试环境。关于P
- 一个简单的实现class NaiveFilter():'''Filter Messages from keyword
- 我就废话不多说了,大家还是直接看代码吧~package mainimport ("bytes""context
- 本文实例讲述了python简单获取本机计算机名和IP地址的方法。分享给大家供大家参考。具体实现方法如下:方法一:>>> i
- 我们使用的是QWebview模块,这里也主要是展示下QWebview的用法。之前在网上找了半天的解析网页的内容,都不是很清楚。这是核心代码:
- 在学习return函数时候,还是要知道了解它最主要的函数作用,比如,怎么去实现返回一个值,另外还有就是我们经常会用到的使用return能够进
- 相信用过Gmail的人都知道Gmail有一个草稿自动保存的功能,每过一段时间,Gmail都会自动保存邮件草稿,这样在一些突 * 况下就能快速地
- 本文讲述的内容基于 Django 1.11摘要Django 中的中间件(middleware),是一个镶嵌到Django的request/r
- 字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-value
- 需求目标执行Python程序的时候在控制台输出内容的时候只显示一行,然后自动刷新内容,像这样:Downloading File FooFil
- 前言层次聚类是流行的无监督学习算法之一。层次聚类所做的就是找到数据集中具有相似属性的元素,并将它们组合在一个集群中。最后,我们得到一个单一的
- vue Print.js打印页面样式不出现解决方案加上这句就好了!完美!vue-print-nb打印问题总结1、表格的列缺失(element
- 面是我下载页面down.php 的php代码 现在我发现,用迅雷,谷歌浏览器直接打开,就能输出下载文件,一点不起防盗链作用。&nb
- 经常使用到有关数据库的操作。包括连接代码、SQL命令等等,又不曾刻意去记忆它们(我本人是不愿意去记这东东),所以常常在用到的时候又去查书本,
- python可以简单优美,也很有趣,下面是收集的例子:1.一句话开始一个http的文件服务器:$ python -m SimpleHTTPS
- 方法1:只保存模型的权重和偏置这种方法不会保存整个网络的结构,只是保存模型的权重和偏置,所以在后期恢复模型之前,必须手动创建和之前模型一模一