【发布时间】:2018-02-10 15:40:24
【问题描述】:
如果numpy.any() 返回True,则与is True 的比较失败,但与== True 的比较有效。有谁知道为什么?
一个最小的例子
from __future__ import print_function
import numpy
a = numpy.array([True])
if a.any() == True:
print('== works')
if a.any() is True:
print('is works')
这段代码的输出只是== works。
【问题讨论】:
-
您为什么还要使用
is进行比较? In this context==is the semantically correct comparison -
出于同样的原因,
1 == 1.0是True和1 is 1.0是False。 1 是整数,1.0 是浮点数。两个事物可以是等价的,但具有不同的底层结构。