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 __
?