如何在Python中实现===运算符的效果?

16 投票
6 回答
8493 浏览
提问于 2025-04-16 21:43

我该如何在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 FalseFalse is 0 的结果是 False

撰写回答