美文网首页js css htmlPython
Python中的null是什么?

Python中的null是什么?

作者: python大数据分析 | 来源:发表于2022-09-15 00:17 被阅读0次

    在知乎上遇到一个问题,说:计算机中的「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。

    相关文章

      网友评论

        本文标题:Python中的null是什么?

        本文链接:https://www.haomeiwen.com/subject/oaulortx.html