如何在Python中实现===
运算符的效果?
例如,我不希望False == 0
为True
。
答案 0 :(得分:38)
如果要检查值和类型是否相同,请使用:
x == y and type(x) == type(y)
在Python中,通常会避免像这样的显式类型比较,但由于布尔值是整数的子类,因此它是唯一的选择。
x is y
比较身份 - 两个名称是否指向内存中的同一对象。 Python布尔值是单例,因此在比较它们时会起作用,但对大多数类型都不起作用。
答案 1 :(得分:17)
试试variable is False
。 False is 0
返回False
,
答案 2 :(得分:1)
您可以使用is
运算符检查对象标识。 False is 0
将返回False
。
答案 3 :(得分:1)
使用Mathematica定义,这是一个很小的功能来完成这项工作。季节delta
尝试:
def SameQ(pram1, pram2, delta=0.0000001):
if type(pram1) == type(pram2):
if pram1 == pram2:
return True
try:
if abs(pram1 - pram2) <= delta:
return True
except Exception:
pass
return False