मुझे एक कस्टम प्रकार की अपनी वस्तुओं का उपयोग पायथन डिक्शनरी में कुंजियों के रूप में करने के लिए क्या करना चाहिए (जहां मुझे कुंजी के रूप में कार्य करने के लिए "ऑब्जेक्ट आईडी" नहीं चाहिए), जैसे
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
मैं MyThing की कुंजियों का उपयोग करना चाहता हूं जिन्हें समान माना जाता है यदि नाम और स्थान समान हैं। C # / Java से मुझे ओवरराइड करने और एक समान और हैशकोड विधि प्रदान करने की आदत है, और कुछ भी हैशकोड को म्यूट न करने का वादा करता है।
इसे पूरा करने के लिए मुझे पायथन में क्या करना चाहिए? क्या मुझे भी करना चाहिए?
(एक साधारण मामले में, यहाँ की तरह, शायद यह सिर्फ नाम (नाम, स्थान) को कुंजी के रूप में रखने के लिए बेहतर होगा - लेकिन मुझे लगता है कि मैं एक वस्तु बनना चाहता हूँ)
MyThing, यदि उनके पास समान है nameऔर location, उसी मूल्य को वापस करने के लिए शब्दकोश को अनुक्रमित करना है, भले ही वे अलग-अलग दो "ऑब्जेक्ट" के रूप में बनाए गए हों।