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。