为什么比较像单一的单身人士的比较应该总是用或不用?

时间:2014-08-14 20:38:08

标签: python pep8

在PEP 8标准中,here,以下建议的原因是什么:"与单身人士的比较,如无,应始终使用是或否,而不是等于运算符。&#34 ;

2 个答案:

答案 0 :(得分:0)

==!=相等测试,他们调用__eq__方法检查运算符的左侧是否代表与一个在右手边。

isis not身份测试,他们检查运营商的左侧和右侧是否引用了相同的对象

单身对象首选

身份测试,因为:

  1. 他们阻止其他对象模仿单身对象:

    class FakeNone:
        def __eq__(self, other):
            return other is None
    
    print FakeNone() is None        # False
    print FakeNone() == None        # True ... WHAT?
    
  2. 它们稍微快一点,因为它们不需要调用方法。

答案 1 :(得分:-2)

可能性能原因。 比较直接比较id而不调用对象的 eq