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

时间:2011-07-17 17:37:37

标签: python comparison identity-operator

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

例如,我不希望False == 0True

4 个答案:

答案 0 :(得分:38)

如果要检查值和类型是否相同,请使用:

x == y and type(x) == type(y)

在Python中,通常会避免像这样的显式类型比较,但由于布尔值是整数的子类,因此它是唯一的选择。


x is y比较身份 - 两个名称是否指向内存中的同一对象。 Python布尔值是单例,因此在比较它们时会起作用,但对大多数类型都不起作用。

答案 1 :(得分:17)

试试variable is FalseFalse 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