当前位置: 首页 > news >正文

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。

相关文章:

  • 【C++进阶】深入探索类型转换
  • (electron 报错)TypeError: Cannot read property ‘upgrade‘ of undefined
  • Linux驱动开发-①中断②阻塞、非阻塞IO和异步通知
  • VLAN:逻辑隔离冲突网络的详细讲解
  • Android第四次面试(Java基础篇)
  • Unity动画片段丢失(AnimationClip),如何进行重新绑定
  • OpenCV旋转估计(5)图像拼接的一个函数waveCorrect()
  • 【云上CPU玩转AIGC】——腾讯云高性能应用服务HAI已支持DeepSeek-R1模型预装环境和CPU算力
  • 基于Spring Boot的本科生交流培养管理平台的设计与实现(LW+源码+讲解)
  • c++ XML库用法
  • 【机器学习-模型评估】
  • 【人工智能】如何理解transformer中的token?
  • 以高斯(GaussDB) 为例, 在cmd 命令行连接数据,操作数据库,关闭数据库的详细步骤
  • Jenkins 容器化部署 uniapp H5 项目
  • 完整的类在JVM中的生命周期详解
  • 腾讯云HAI1元体验:轻松调用DeepSeek-R1模型搭建网站
  • FRP在远程办公中的实战应用
  • 国家雪亮工程政策护航,互联网监控管理平台铸就安全防线
  • Android Compose 图像修饰深度解析(八)
  • 支持多系统多协议且可提速的下载工具
  • 十年磨一剑!上海科学家首次揭示宿主识别肠道菌群调控免疫新机制
  • 奥迪车加油时频繁“跳枪”维修两年未解决,4S店拒退换:可延长质保
  • 沈阳卫健委通报“健康证”办理乱象:涉事医院已被立案查处
  • 高适配算力、行业大模型与智能体平台重塑工业城市
  • 上海国际电影节特设“今日亚洲”单元
  • 著名学者黄修己去世,享年90岁