无在Python中测试数组

时间:2018-05-31 14:45:58

标签: python

我有一个python数组,可能是也可能不是None

    arr = None # or possibly an array

    x = arr == None

    if x: 
      # do something

它适用于arr = None的情况,但如果它是一个数组,我会计算出等于None的数组的索引。

如果python中的某个实体整体上是== None,那么表达式将被评估为什么?

2 个答案:

答案 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 Noneis not None可能是最好的方式。