Python中对应于'null'的是什么?
在Python中,对应于其他语言的null使用的是关键字None:
if foo is None:
...>>> foo is None
True
>>> foo = 'bar'
>>> foo is None
False在Python惯例中,使用is来检查变量是否没有设置成None这个管理在案例declaring keyword functions with default parameters有详细说明。is检查的是标识,这是因为在Python程序中None只有一个实例,所以is用来检查。
所以检查一个变量不是None的时候,我们会使用(参考Zen of Python):
if not (val is None):
# ...None的详解
None的详解There is and can only be one None
在Python中,None是类NoneType的唯一实例,并且任何尝试这个类都会返回相同对象,也就时None是唯一的。
>>> NoneType
NameError: name 'NoneType' is not defined
>>> type(None)
NoneType你可以使用Python的标识函数id()来检查None的唯一性,会返回对象的唯一标识,每个对象一个标识。如果两个变量具有相同的id,就表示这两个变量实际上是同一个对象:
Nonecannot be overwritten
在早期的Python(2.4之前)可以重新设置None,但是现在不能:
这就确保了None的引用是相同的,没有"定制"的None
To test for
Noneuse the is operator
要检查是否是None需要使用关键字is,不要使用==
参考
null object in Python? - 问答中的
mike_e提供了详细的解说,非常详细,我没有全文翻译,建议阅读原文
Last updated
Was this helpful?