Как достичь эффекта оператора === в Python?

Как достичь эффекта оператора === в Python?

Например, я не хочу, чтобы False == 0 был True.

Ответ 1

Попробуйте variable is False. False is 0 возвращает False,

Ответ 2

Если вы хотите проверить, что значение и тип используются одинаково:

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

В Python обычно избегают явных сопоставлений типов, подобных этому, но поскольку булевы являются подклассом целых чисел, это единственный выбор здесь.


x is y сравнивает идентификатор - два имени относятся к одному и тому же объекту в памяти. Булевы значения Python являются одиночными, поэтому это будет работать при их сравнении, но не будет работать для большинства типов.

Ответ 3

Вы можете использовать оператор is для проверки идентичности объекта. False is 0 вернет False тогда.

Ответ 4

Идти с определением 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