Приравнивается ли объект Python, который не переопределяет операторы сравнения, к самому себе?

class A(object):

    def __init__(self, value):
        self.value = value

x = A(1)
y = A(2)

q = [x, y]
q.remove(y)

Я хочу удалить из списка конкретный объект, который был добавлен к нему ранее и к которому у меня все еще есть ссылка. Я не хочу проверки на равенство. Я хочу пройти проверку личности. Этот код, кажется, работает как в CPython, так и в IronPython, но гарантирует ли язык такое поведение или это просто случайность?

Документация метода list.remove такова: то же, что и del s [s.index (x)] , что означает, что выполняется проверка на равенство.

Таким образом, будет ли объект равен самому себе, если вы не переопределите __ cmp __ , __ eq __ или __ ne __ ?

13
задан Meh 21 December 2011 в 11:12
поделиться