Що я повинен зробити, щоб використовувати свої об'єкти користувальницького типу як ключі в словнику Python (де я не хочу, щоб "ідентифікатор об'єкта" виконував роль ключа), наприклад
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
Я б хотів використовувати MyThing як ключі, які вважаються однаковими, якщо ім’я та місце розташування однакові. З C # / Java я звик переосмислювати та надавати метод рівних та хеш-кодів, і обіцяю не мутувати нічого, від чого залежить хеш-код.
Що я повинен зробити в Python для цього? Чи повинен я навіть?
(У простому випадку, як, наприклад, тут, можливо, було б краще просто вказати кордон (ім’я, місцезнаходження) як ключ - але врахуйте, що я хочу, щоб ключ був об’єктом)
MyThing
, якщо вони однакові, name
і location
, щоб індексувати словник повертав однакове значення, навіть якщо вони були створені окремо, як два різних "об'єкти".