当前位置: 首页 > 科技观察

Python中的Null是什么?

时间:2023-03-11 23:45:24 科技观察

在知乎上遇到一个问题,说:“null”在电脑里怎么读?null的正确读音是/n^l/,有点类似于四音的‘Naer’。在计算机中,null是一种表示空字符的类型。它不绑定任何值,存储空间没有存储价值。其实Python中没有null这个词,取而代之的是None对象,特殊类型NoneType,代表空无。None不能理解为0,因为0是有意义的,None是一个特殊的空值:>>>NoneTypeNameError:name'NoneType'isnotdefined>>>type(None)NoneTypeNonecannotbeunderstandedasanullcharacter'',因为null字符的类型是字符串:>>>type('')虽然是空的意思,但是None是一个具体的Python对象,和null不一样。Python中ReturnNone:>>>defhas_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>>>deffunction_that_does_nothing():pass>>>return_value=function_that_does_nothing()>>>id(return_value)10748000在Python中,None有很多用途,比如变量的初始值,作为函数默认参数,作为空值等等。变量初始值:>>>print(bar)Traceback(最近调用last):文件“”,第1行,在NameError:name'bar'isnotdefined>>>bar=None>>>print(bar)None函数默认参数:defbad_function(new_elem,starter_list=[]):starter_list.append(new_elem)returnstarter_listnullvalue:>>>classDontAppend:pass...>>>defgood_function(new_elem=DontAppend,starter_list=None):...如果starter_list是None:...starter_list=[]...如果new_elem不是DontAppend:...starter_list.append(new_elem)...returnstarter_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。