파이썬 딕셔너리에서 커스텀 타입의 객체를 키로 사용하려면 어떻게해야합니까 ( "object id"를 키로 사용하지 않기를 원합니다)
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
이름과 위치가 같은 경우 MyThing을 동일한 키로 사용하고 싶습니다. C # / Java에서 equals 및 hashcode 메서드를 재정의하고 제공해야하며 해시 코드가 의존하는 것을 변경하지 않도록 약속했습니다.
이것을 달성하기 위해 파이썬에서 무엇을해야합니까? 나도해야합니까?
(단순한 경우, 여기에서와 같이 (이름, 위치) 튜플을 키로 배치하는 것이 좋습니다. 그러나 키를 객체로 만들고 싶습니다.)
MyThing
, 그들은 같은 경우 name
와 location
인덱스가 서로 다른 두 가지 "객체"별도로 생성 된 경우에도, 같은 값을 반환 할 수있는 사전을.