如何将自定义类型的对象用作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中做什么才能做到这一点?我应该吗?
(在一个简单的例子中,就像这里一样,也许最好将一个(名称,位置)元组放置为键-但考虑到我希望键成为一个对象)
MyThing
,如果他们有相同的name
和location
,索引字典中返回相同的值,即使它们分别创建为两个不同的“对象”。