मैं __getitem__पायथन डॉक्स के अधिकांश प्रलेखन से गुजरा हूं, लेकिन मैं अभी भी इसका अर्थ समझ नहीं पा रहा हूं।
तो सब मैं समझ सकता हूं कि __getitem__कॉल को लागू करने के लिए उपयोग किया जाता है self[key]। लेकिन इसका क्या फायदा है?
आइए बताते हैं कि मेरे पास एक अजगर वर्ग इस तरह से परिभाषित है:
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def __getitem__(self,key):
print ("Inside `__getitem__` method!")
return getattr(self,key)
p = Person("Subhayan",32)
print (p["age"])
यह अपेक्षित परिणाम देता है। लेकिन __getitem__पहली जगह में क्यों उपयोग करें ? मैंने यह भी सुना है कि पायथन __getitem__आंतरिक रूप से कॉल करता है। लेकिन यह क्यों करता है?
क्या कोई इसे और अधिक विस्तार से बता सकता है?
__getitem__अपने उदाहरण में उपयोग भावना का एक बहुत नहीं है, लेकिन कल्पना कीजिए कि आप एक कस्टम सूची- या शब्दकोश की तरह वर्ग लिखने के लिए, मौजूदा कोड है कि का उपयोग करता है के साथ काम करने के लिए है कि जरूरत है []। यह एक ऐसी स्थिति है जहाँ __getitem__उपयोगी है।