如何在python中“测试”NoneType?
我有一个方法有时返回一个NoneType值。 那么我怎么能问一个变量是一个NoneType? 例如,我需要使用if方法
if not new:
new = '#'
我知道这是错误的方式,我希望你明白我的意思。
那么我怎么能问一个变量是一个NoneType?
使用is
运营商,就像这样
if variable is None:
为什么这有效?
由于None
是Python中唯一的NoneType
对象, NoneType
我们可以使用is
运算符来检查变量是否具有None
。
从报价is
文档,
运算符is
is not
测试对象的身份:当且仅当x
和y
是同一个对象时, x is y
是真的。 x is not y
产生逆真值。
由于只能有一个None
实例, is
将是检查None
的首选方法。
从马的嘴里听到它
引用Python的编码风格指南--PEP-008(由Guido自己共同定义),
像None
这样的单身人士的比较应该总是用“ is
或“ is not
, 从来 is not
平等运算符 。
if variable is None:
print 'Is None'
-
if variable is not None:
print 'Isn't None'
根据Alex Hall的回答,它也可以用isinstance
完成:
>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True
isinstance
也很直观,但它需要线路的复杂性
NoneType = type(None)
这对int
和float
类型是不需要的。