如何在Python中实现===运算符的效果?
我该如何在Python中实现===
运算符的效果呢?
举个例子,我不希望False == 0
的结果是True
。
6 个回答
2
根据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
42
如果你想检查一个值和它的类型是否完全相同,可以使用:
x == y and type(x) == type(y)
在Python中,像这样的明确类型比较通常是不推荐的,但因为布尔值是整数的一个子类,所以在这里这是唯一的选择。
x is y
是用来比较身份的,也就是看看两个名字是否指向内存中的同一个对象。Python中的布尔值是单例,所以在比较它们时这个方法是有效的,但对于大多数其他类型来说就不行了。
16
试试 variable is False
。 False is 0
的结果是 False
。