必须做什么才能将我的自定义类型的对象用作Python字典中的键(我不希望“对象ID”充当键)自定义类型作为字典键的对象
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
我想使用MyThing作为密钥,如果名称和位置相同,则认为它们是相同的。从C#/ Java我习惯于重写并提供一个equals和hashcode方法,并承诺不会改变hashcode依赖的任何东西。
我必须在Python中做什么来完成这个任务?我应该甚至?
(在简单的情况下,喜欢这里,或许会更好,只是放置一个(名称,位置)元组的关键 - 但考虑到我想关键是一个对象)
有什么不对使用哈希? – 2011-02-04 18:55:18
可能是因为他想要两个`MyThing`,如果它们具有相同的`name`和`location`,则索引字典以返回相同的值,即使它们是作为两个不同的“对象”单独创建的。 – Santa 2011-02-04 19:00:20
“也许最好是将一个(名称,位置)元组作为关键元素 - 但考虑我希望键是一个对象)”您的意思是:一个非复合对象? – eyquem 2011-02-04 21:20:29