詳解Python中的null是什么
在知乎上遇到一個(gè)問題,說:計(jì)算機(jī)中的「null」怎么讀?
null正確的發(fā)音是/n^l/,有點(diǎn)類似四聲‘納兒’,在計(jì)算機(jī)中null是一種類型,代表空字符,沒有與任何一個(gè)值綁定并且存儲(chǔ)空間也沒有存儲(chǔ)值。
Python中其實(shí)沒有null這個(gè)詞,取而代之的是None對(duì)象,即特殊類型NoneType,代表空、沒有。
None不能理解為0,因?yàn)?是有意義的,而None是一個(gè)特殊的空值。
>>> NoneType NameError: name 'NoneType' is not defined >>> type(None) NoneType
None也不能理解為空字符'',因?yàn)榭兆址念愋褪亲址?/p>
>>>type('') <class ''str'>
雖然表示空,但None是一個(gè)具體的Python對(duì)象,這和null含義不一樣。
在Python中返回None:
>>> def has_no_return(): ... pass >>> has_no_return() >>> print(has_no_return()) None
你可以使用 Python 的標(biāo)識(shí)函數(shù) id()
檢查 None 的唯一性,它返回某一對(duì)象的唯一標(biāo)識(shí)符,如果兩個(gè)變量的 id 相同,那么它們實(shí)際上指向的是同一個(gè)對(duì)象。
>>> 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是一個(gè)對(duì)象,而null是一個(gè)類型。
Python中沒有null,只有None,None有自己的特殊類型NoneType。
None不等于0、任何空字符串、False等。
在Python中,None、False、0、””(空字符串)、、()(空元組)、{}(空字典)都相當(dāng)于False。
到此這篇關(guān)于Python中的null是什么?的文章就介紹到這了,更多相關(guān)Python null內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Django no such table: django_session的問題
這篇文章主要介紹了解決Django no such table: django_session的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04從零開始制作PyTorch的Singularity容器鏡像的解決方案
本文主要介紹Facebook所主導(dǎo)的機(jī)器學(xué)習(xí)框架PyTorch的容器化安裝方法,基于HPC環(huán)境常用的Singularity高性能容器,并且兼容與結(jié)合了Docker容器鏡像的生態(tài),感興趣的朋友跟隨小編一起看看吧2024-05-05Python實(shí)現(xiàn)ElGamal加密算法的示例代碼
ElGamal加密算法是一個(gè)基于迪菲-赫爾曼密鑰交換的非對(duì)稱加密算法。這篇文章通過示例代碼給大家介紹Python實(shí)現(xiàn)ElGamal加密算法的相關(guān)知識(shí),感興趣的朋友一起看看吧2020-06-06Python3實(shí)現(xiàn)連接SQLite數(shù)據(jù)庫的方法
這篇文章主要介紹了Python3實(shí)現(xiàn)連接SQLite數(shù)據(jù)庫的方法,在Python數(shù)據(jù)庫編程中有著廣泛的應(yīng)用,需要的朋友可以參考下2014-08-08python連接mongodb數(shù)據(jù)庫操作數(shù)據(jù)示例
這篇文章主要介紹了python連接mongodb操作數(shù)據(jù)示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11教你如何識(shí)別代理IP的真實(shí)地理位置(使用Python庫)
本文介紹了IP數(shù)據(jù)庫查詢、反向DNS查詢和網(wǎng)絡(luò)延遲測(cè)量三種方法,并通過案例分析和代碼實(shí)現(xiàn)展示了如何使用Python庫進(jìn)行IP地理位置查詢,需要的朋友可以參考下2024-03-03在Django中創(chuàng)建第一個(gè)靜態(tài)視圖
這篇文章主要介紹了在Django中創(chuàng)建第一個(gè)靜態(tài)視圖的方法,與其他編程語言的開始一樣,以Hello world作為示例,需要的朋友可以參考下2015-07-07基于tkinter中ttk控件的width-height設(shè)置方式
這篇文章主要介紹了基于tkinter中ttk控件的width-height設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05初學(xué)python的操作難點(diǎn)總結(jié)(新手必看篇)
下面小編就為大家?guī)硪黄鯇W(xué)python的操作難點(diǎn)總結(jié)(新手必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08