カスタムタイプのオブジェクトをPython辞書のキーとして使用するにはどうすればよいですか(「オブジェクトID」をキーとして機能させたくない場合)。例:
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
MyThingを、名前と場所が同じであれば同じと見なされるキーとして使用したいと思います。C#/ Javaから、equalsおよびhashcodeメソッドをオーバーライドして提供する必要があり、ハッシュコードが依存するものを変更しないことを約束しました。
これを行うには、Pythonで何をする必要がありますか?私もすべきですか?
(ここのような単純なケースでは、おそらく(name、location)タプルをキーとして配置するほうが良いでしょう-しかし、キーをオブジェクトにしたいと考えてください)
MyThing
、同じname
とを持っている場合location
、辞書にインデックスを付けて同じ値を返すようにしたいからです。