Оператор установки «in»: использует равенство или идентичность?

class A(object):
    def __cmp__(self):
        print '__cmp__'
        return object.__cmp__(self)

    def __eq__(self, rhs):
        print '__eq__'
        return True
a1 = A()
a2 = A()
print a1 in set([a1])
print a1 in set([a2])

Почему первая строка печатает True, а вторая - False? И ни один из них не входит в оператор eq ?

Я использую Python 2.6

32
задан martineau 4 April 2019 в 09:56
поделиться