详解Python中的null是什么

 更新时间:2022年09月15日 09:10:35   作者:Python大数据分析  
这篇文章主要介绍了Python中的null是什么,Python中其实没有null这个词,取而代之的是None对象,即特殊类型NoneType,代表空、没有,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

在知乎上遇到一个问题,说:计算机中的「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。

到此这篇关于Python中的null是什么?的文章就介绍到这了,更多相关Python null内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python连接DB2数据库

    Python连接DB2数据库

    DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本。今天我们来探讨下如何使用Python连接DB2数据库
    2016-08-08
  • 聊聊prod()与cumprod()区别cumsum()

    聊聊prod()与cumprod()区别cumsum()

    这篇文章主要介绍了prod()与cumprod()区别cumsum(),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python 下载m3u8视频的示例代码

    python 下载m3u8视频的示例代码

    这篇文章主要介绍了python 下载m3u8视频的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • Python与HTTP服务交互的三种方式

    Python与HTTP服务交互的三种方式

    本文主要介绍了Python与HTTP服务交互的三种方式,通过http.client,requests,RissionPage,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 如何用python清洗文件中的数据

    如何用python清洗文件中的数据

    数据清洗是整个数据分析过程的第一步,就像做一道菜之前需要先择菜洗菜一样。 数据分析师经常需要花费大量的时间来清洗数据或者转换格式,这个工作甚至会占整个数据分析流程的80%左右的时间。今天,就来学习一下Python的数据清洗吧!
    2021-06-06
  • python实现查找所有程序的安装信息

    python实现查找所有程序的安装信息

    本文给大家分享的是使用python通过注册表信息实现快速查找windows应用程序的安装信息的方法和代码示例,有需要的小伙伴可以参考下
    2020-02-02
  • Python中时间类型的JSON数据转换

    Python中时间类型的JSON数据转换

    在Python中,处理时间和日期数据以及与JSON数据的相互转换是常见的任务,本文主要为大家详细如何在Python中处理时间类型的JSON数据转换,需要的小伙伴可以参考下
    2024-02-02
  • python基础pandas的drop()用法示例详解

    python基础pandas的drop()用法示例详解

    这篇文章主要介绍了python基础pandas的drop()用法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • E: 无法定位软件包 python3-pip问题及解决

    E: 无法定位软件包 python3-pip问题及解决

    这篇文章主要介绍了E: 无法定位软件包 python3-pip问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • python实现多进程并发控制Semaphore与互斥锁LOCK

    python实现多进程并发控制Semaphore与互斥锁LOCK

    本文主要介绍了python实现多进程并发控制Semaphore与互斥锁LOCK,通过实例来介绍互斥锁和进程并发控制 semaphore的具体使用,感兴趣的同学可以了解一下
    2021-05-05

最新评论