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

Python中的null是什么?

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。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL 及 SQL 注入
  • 全国及分(31个)省全社会就业人数(1978-2022年)
  • 重学设计模式,【结构型】装饰器模式
  • Springboot小区物业服务平台—计算机毕业设计源码35514
  • 第十五章:使用html、css、js编程制作一个网页版的下雪场景动画
  • 模拟电路工程师面试题
  • Writeset
  • vue选项式写法项目案例(购物车)
  • 操作系统week3
  • vue源码分析(九)—— 合并配置
  • 打印机问题故障处理_十大打印机故障大全及处理方法
  • 大模型各版本Base, Chat, Instruction 之间的区别
  • Leetcode 3298. Count Substrings That Can Be Rearranged to Contain a String II
  • Pandas Series 概述与使用指南
  • [SDX35+WCN6856]SDX35 + WCN6856 默认增加打包wifi配置hostapd_24g.conf和hostapd_5g.conf操作方法
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 2017 年终总结 —— 在路上
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • js作用域和this的理解
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Python实现BT种子转化为磁力链接【实战】
  • Spring框架之我见(三)——IOC、AOP
  • ⭐ Unity + OpenCV 实现实时图像识别与叠加效果
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 电商搜索引擎的架构设计和性能优化
  • 关于springcloud Gateway中的限流
  • 基于组件的设计工作流与界面抽象
  • 前端之Sass/Scss实战笔记
  • 算法-插入排序
  • 推荐一个React的管理后台框架
  • 微信小程序实战练习(仿五洲到家微信版)
  • 异常机制详解
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • %@ page import=%的用法
  • (1) caustics\
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2)MFC+openGL单文档框架glFrame
  • (HAL库版)freeRTOS移植STMF103
  • (阿里云万网)-域名注册购买实名流程
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (篇九)MySQL常用内置函数
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转载)hibernate缓存
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .form文件_SSM框架文件上传篇
  • .gitignore不生效的解决方案
  • .htaccess 强制https 单独排除某个目录