網(wǎng)站首頁 編程語言 正文
在知乎上遇到一個問題,說:計(jì)算機(jī)中的「null」怎么讀?
null正確的發(fā)音是/n^l/,有點(diǎn)類似四聲‘納兒’,在計(jì)算機(jī)中null是一種類型,代表空字符,沒有與任何一個值綁定并且存儲空間也沒有存儲值。
Python中其實(shí)沒有null這個詞,取而代之的是None對象,即特殊類型NoneType,代表空、沒有。
None不能理解為0,因?yàn)?是有意義的,而None是一個特殊的空值。
>>> NoneType NameError: name 'NoneType' is not defined >>> type(None) NoneType
None也不能理解為空字符'',因?yàn)榭兆址念愋褪亲址?/p>
>>>type('') <class ''str'>
雖然表示空,但None是一個具體的Python對象,這和null含義不一樣。
在Python中返回None:
>>> def has_no_return(): ... pass >>> has_no_return() >>> print(has_no_return()) None
你可以使用 Python 的標(biāo)識函數(shù)?id()
?檢查 None 的唯一性,它返回某一對象的唯一標(biāo)識符,如果兩個變量的 id 相同,那么它們實(shí)際上指向的是同一個對象。
>>> 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的用處有很多,比如作為變量初始值、作為函數(shù)默認(rèn)參數(shù)、作為空值等等。
變量初始值
>>> print(bar) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'bar' is not defined >>> bar = None >>> print(bar) None
函數(shù)默認(rèn)參數(shù)
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、””(空字符串)、、()(空元組)、{}(空字典)都相當(dāng)于False。
原文鏈接:https://zhuanlan.zhihu.com/p/564502153
相關(guān)推薦
- 2022-03-28 Python?PCA降維的兩種實(shí)現(xiàn)方法_python
- 2022-07-16 python中文文本切詞Kmeans聚類_python
- 2022-05-03 windows?server?2019開啟iis服務(wù)器+tp5.1的完美配置運(yùn)行流程_win服務(wù)器
- 2022-08-14 Qt控件點(diǎn)擊消息獲取的方法詳解_C 語言
- 2022-04-14 Django執(zhí)行指定腳本的幾種方法_python
- 2022-10-02 C/C++寬窄字符轉(zhuǎn)換與輸出的多種實(shí)現(xiàn)方法_C 語言
- 2023-12-15 Linux系統(tǒng)中date命令、hwclock命令 語法詳解
- 2022-05-21 生產(chǎn)級K8S基礎(chǔ)環(huán)境部署配置流程_服務(wù)器其它
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支