__getitem__ का परिचय: पायथन में एक जादुई विधि

__getitem__ का परिचय: पायथन में एक जादुई विधि

स्रोत नोड: 2011206

__getitem__ का परिचय: पायथन में एक जादुई विधि
लेखक द्वारा छवि

पायथन एक जादुई भाषा है जिसमें कई अवधारणाएँ हैं जिनसे उन्नत उपयोगकर्ता भी परिचित नहीं हो सकते हैं। डंडर या जादुई तरीके उनमें से एक है। जादू विधियां विशेष विधियां हैं जो डबल अंडरस्कोर से घिरी हुई हैं। उन्हें पायथन में सामान्य तरीकों के विपरीत स्पष्ट रूप से नहीं कहा जाता है। ऐसा ही एक जादुई तरीका है __getitem__ विधि, पायथन वस्तुओं को अनुक्रमों या कंटेनरों जैसे सूचियों, शब्दकोशों और टुपल्स की तरह व्यवहार करने में सक्षम बनाती है। यह इंडेक्स या स्लाइस लेता है और संग्रह से संबंधित मूल्य को पुनः प्राप्त करता है। जब भी हम इसका उपयोग करते हैं तो यह स्वचालित रूप से लागू हो जाता है indexer [ ] ऑपरेटर आपकी वस्तु के भीतर तत्वों तक पहुँचने के लिए।

इस पद्धति को एक जादू की छड़ी के रूप में सोचें जो आपको कोड की कुछ पंक्तियां लिखकर आवश्यक जानकारी निकालने की शक्ति प्रदान करती है। दिलचस्प सही? इस पद्धति का उपयोग डेटा विश्लेषण और मशीन लर्निंग में भी व्यापक रूप से किया जाता है। तो, आइए गहराई से गोता लगाएँ __getitem__ विधि और इसकी शक्ति और लचीलेपन की खोज करें।

मैं चाहता हूं कि आप यह समझें कि पायथन प्रोग्रामर के रूप में आपका कर्तव्य केवल कार्यात्मक कोड लिखने से कहीं अधिक है। आपका कोड कुशल, पठनीय और रखरखाव योग्य होना चाहिए। का उपयोग करते हुए __getitem__ इन लक्ष्यों को प्राप्त करने में आपकी सहायता करेगा। इस जादू पद्धति का उपयोग करने के कुछ अन्य लाभ इस प्रकार हैं:

  • मेमोरी में संपूर्ण डेटा संरचना को लोड करने के बजाय आपको केवल आवश्यक जानकारी निकालने की अनुमति देकर मेमोरी उपयोग को कम करता है
  • डेटा को कैसे प्रबंधित और हेरफेर किया जाता है, इसमें अधिक लचीलापन प्रदान करता है
  • आपको डेटा पर लूप किए बिना संग्रह पर पुनरावृति करने की अनुमति देता है
  • आपको उन्नत अनुक्रमण लिखने की अनुमति देकर कार्यक्षमता बढ़ाता है जो कि अंतर्निहित प्रकारों के साथ संभव नहीं हो सकता है
  • कोड को सरल करता है क्योंकि यह परिचित अंकन का उपयोग करता है

के लिए वाक्यविन्यास __getitem__ विधि इस प्रकार है:

def __getitem__(self, index): # Your Implementation pass

 

यह फ़ंक्शन के व्यवहार को परिभाषित करता है और उस इंडेक्स को लेता है जिसे आप इसके पैरामीटर में एक्सेस करने का प्रयास कर रहे हैं। हम इस विधि का उपयोग इस प्रकार कर सकते हैं:

my_obj[index] 

 

यह कथन में अनुवाद करता है my_obj.__getitem__(index) हुड के नीचे। अब आप सोच सकते हैं कि यह बिल्ट-इन से कैसे अलग है indexer [] ऑपरेटर? जहाँ भी आप इस संकेतन का उपयोग करते हैं, अजगर स्वचालित रूप से कॉल करता है __getitem__ आपके लिए विधि और तत्वों तक पहुँचने के लिए आशुलिपि है। लेकिन अगर आप कस्टम ऑब्जेक्ट्स के इंडेक्सिंग के व्यवहार को बदलना चाहते हैं, तो आपको स्पष्ट रूप से कॉल करने की आवश्यकता है __getitem__ विधि.

उदाहरण #01

आइए पहले एक आसान उदाहरण से शुरू करें। हम एक छात्र वर्ग बनाएंगे जिसमें सभी छात्रों की सूची होगी और हम उन्हें इंडेक्स द्वारा एक्सेस कर सकते हैं और विचार करें कि इंडेक्स उनकी विशिष्ट छात्र आईडी का प्रतिनिधित्व करता है।

class Student: def __init__(self, names): self.names=names def __getitem__(self,index): return self.names[index] section_A= Student(["David", "Elsa", "Qasim"])
print(section_A[2])

 

आउटपुट:

 

अब हम एक उन्नत उदाहरण की ओर बढ़ेंगे, जहाँ हम __getitem__ तरीका। मान लीजिए कि मेरे पास स्ट्रिंग तत्वों की एक सूची है और जब भी मैं इसकी अनुक्रमणिका स्थिति दर्ज करता हूं तो मैं तत्व को पुनर्प्राप्त करना चाहता हूं और यदि मैं स्वयं स्ट्रिंग दर्ज करता हूं तो मुझे अनुक्रमणिका स्थिति भी मिल सकती है।

class MyList: def __init__(self, items): self.items = items def __getitem__(self, index): if isinstance(index, int): return self.items[index] elif isinstance(index, str): return self.items.index(index) else: raise TypeError("Invalid Argument Type") my_list = MyList(['red', 'blue', 'green', 'black']) # Indexing with integer keys
print(my_list[0]) print(my_list[2]) # Indexing with string keys
print(my_list['red']) print(my_list['green']) 

 

आउटपुट:

red
green
0 2

इंस्टेंस एट्रिब्यूट्स के त्वरित लुकअप के लिए यह विधि अत्यंत उपयोगी है। इस पद्धति के लचीलेपन और बहुमुखी प्रतिभा को ध्यान में रखते हुए, मैं कहूंगा कि यह पायथन के सबसे कम उपयोग किए जाने वाले जादुई तरीकों में से एक है। मुझे आशा है कि आपको यह लेख पढ़ने में मज़ा आया होगा और यदि आप पायथन में अन्य जादू के तरीकों के बारे में जानने में रुचि रखते हैं तो मुझे टिप्पणी अनुभाग में बताएं।
 
 
कंवल महरीन डेटा विज्ञान और चिकित्सा में एआई के अनुप्रयोगों में गहरी रुचि रखने वाला एक महत्वाकांक्षी सॉफ्टवेयर डेवलपर है। कंवल को APAC क्षेत्र के लिए Google जनरेशन स्कॉलर 2022 के रूप में चुना गया था। कंवल ट्रेंडिंग टॉपिक्स पर लेख लिखकर तकनीकी ज्ञान साझा करना पसंद करते हैं, और टेक उद्योग में महिलाओं के प्रतिनिधित्व को बेहतर बनाने के लिए भावुक हैं।
 

समय टिकट:

से अधिक केडनगेट्स