2010-01-11 6 views

답변

13

예, (아마도 아마도 __ne__! -)과 일관되게 정의하는 한 그렇습니다. 자, 괜찮아요. 괜찮 으면 a==b은 정확히 a is b과 같습니다. -)

+1

감사합니다. 두 번째 문장은 그것을 아주 잘 설명합니다. –

6

대부분의 Python 클래스의 경우 이것이 기본 동작입니다. unhashable 것들은 좋은 이유가 unhashable 있습니다 : 그들은 변경 가능한 모음입니다.

컬렉션의 경우 내용의 동등성을 기준으로 동등한 관계 (__eq__()에 정의 된대로)를 갖는 것이 현실적입니다. 이것과 __hash__()에 대한 요구 사항은 평등에 부합해야하며, 물론 __hash__()을 변경할 수 있습니다. 이러한 개체는 해당 개체를 포함하는 컬렉션에서 끔찍한 요소입니다.

이렇게 할 수는 있지만 콘텐츠 기반 동등한 관계가 필요합니다.

관련 문제