如何在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类型是不需要的。
