在Python中'not(a == b)'是否等于'a!= b'?

时间:2020-09-22 13:21:30

标签: python

我认为在Python中,==应该检查是否相等,而is应该检查身份。

从逻辑的角度来看,我认为not (a == b)应该等于a != b。我会忽略什么吗?

我想到两件事:(1)以一种不好的方式实现__ne____eq__的类(2)带有浮点数/ float('nan')的东西。但是我找不到两个表达式不相等的示例。他们的字节码不是:

>>> def a(compare):
...     return not compare == "in"


>>> def b(compare):
...     return compare != "in"

>>> import dis
>>> dis.dis(a)
  2           0 LOAD_FAST                0 (compare)
              2 LOAD_CONST               1 ('in')
              4 COMPARE_OP               2 (==)
              6 UNARY_NOT
              8 RETURN_VALUE
>>> dis.dis(b)
  2           0 LOAD_FAST                0 (compare)
              2 LOAD_CONST               1 ('in')
              4 COMPARE_OP               3 (!=)
              6 RETURN_VALUE

0 个答案:

没有答案