我有一个方法,有时返回一个NoneType值。因此,我如何质疑一个变量是一个NoneType?例如,我需要使用if方法
if not new:
new = '#'
我知道这是错误的方式,我希望你能理解我的意思。
我有一个方法,有时返回一个NoneType值。因此,我如何质疑一个变量是一个NoneType?例如,我需要使用if方法
if not new:
new = '#'
我知道这是错误的方式,我希望你能理解我的意思。
当前回答
我主要使用以下方法来检查NoneType。
if (new): # not None
...
else: # NoneType
...
其他回答
我主要使用以下方法来检查NoneType。
if (new): # not None
...
else: # NoneType
...
正如Aaron Hall的评论所指出的:
因为你不能子类化NoneType,而且因为None是一个单例,所以isinstance不应该用来检测None——相反,你应该按照接受的答案去做,使用是None或不是None。
最初的回答:
然而,最简单的方法,除了小豆蔻的答案之外,没有额外的线条可能是: isinstance (x,类型(无))
因此,我如何质疑一个变量是一个NoneType?我需要使用if方法
使用isinstance()不需要在if语句中使用is:
if isinstance(x, type(None)):
#do stuff
额外的信息 您还可以像文档中提到的那样,在一个isinstance()语句中检查多个类型。只需将类型编写为元组。
isinstance(x, (type(None), bytes))
根据Alex Hall的回答,也可以用isinstance来实现:
>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True
Isinstance也是直观的,但有一个复杂的问题,它需要行
NoneType =类型(无)
这对于int和float类型不需要。
if variable is None:
...
if variable is not None:
...
Python 2.7:
x = None
isinstance(x, type(None))
or
isinstance(None, type(None))
= = >真