我有一个python数组,可能是也可能不是None
:
arr = None # or possibly an array
x = arr == None
if x:
# do something
它适用于arr = None
的情况,但如果它是一个数组,我会计算出等于None
的数组的索引。
如果python中的某个实体整体上是== None
,那么表达式将被评估为什么?
答案 0 :(得分:1)
这应该足够了
if x is None
答案 1 :(得分:0)
如果我理解,您的数组是numpy
数组,或实现__eq__
以返回单个bool
以外的其他任何数据类型。
In [1]: array = None
In [2]: array == None
Out[2]: True
In [3]: array = np.array([1, 2, 3, 4, 5])
In [4]: array == None
Out[4]: array([False, False, False, False, False], dtype=bool)
在这种情况下,您仍然可以使用is None
,这是检查某些内容是否为None
的首选方法:
In [5]: array is None
Out[5]: False
其他一些选项是不将数组初始化为 init 中的None
,并使用hasattr
检查数组是否已经存在正确定义,或仅try
访问数组并在发生异常时创建它。但是,使用is None
或is not None
可能是最好的方式。