अजगर वस्तु विधि

| | | | | | | | | | | | | | | |

पायथन विधियों में तर्कों को कोष्ठकों में निर्दिष्ट किया जाना चाहिए। ऐसा इसलिए है क्योंकि फ़ंक्शन और विधियाँ यह इंगित करने के लिए कोष्ठक का उपयोग करती हैं कि क्या उन्हें कहा जाता है। यदि आप किसी विधि को कॉल करने के लिए वर्गाकार कोष्ठकों का उपयोग करते हैं, तो आप एक "लेखन त्रुटि: `विधि` वस्तु सदस्यता योग्य नहीं है" त्रुटि का सामना करेंगे। इस मार्गदर्शिका में, हम बताते हैं कि इस त्रुटि का क्या अर्थ है और आप ऐसा क्यों कर सकते हैं इसका सामना करो। आइए समाधान विकसित करने में आपकी सहायता के लिए इस त्रुटि का एक उदाहरण देखें। -ऑब्जेक्ट-है-नॉट-सबस्क्रिप्टेबल / "> सब्स्क्राइब करने योग्य ऑब्जेक्ट __getitem__ विधि वाली ऑब्जेक्ट हैं। ये डेटा प्रकार हैं जैसे सूचियाँ, शब्दकोश और टुपल्स। __getitem__ विधि पायथन दुभाषिया को एक संग्रह से एक आइटम को पुनः प्राप्त करने की अनुमति देती है।

सभी आइटम सब्सक्राइब नहीं किए जाते हैं। उदाहरण के लिए, तरीके नहीं हैं। ऐसा इसलिए है क्योंकि वे __getitem__ पद्धति को लागू नहीं करते हैं। इसका मतलब है कि आप किसी विधि के तत्वों तक पहुँचने या किसी विधि को कॉल करने के लिए ब्रैकेटेड सिंटैक्स का उपयोग नहीं कर सकते हैं।

निम्न कोड स्निपेट पर विचार करें:

यह कोड "एडम" लौटाता है, पनीर इंडेक्स 0 की स्थिति में। p>

एक उदाहरण परिदृश्य

यहाँ हम एक प्रोग्राम बनाते हैं जो चीज़ों को वस्तुओं में संग्रहीत करता है। "चीज़‚" जिस वर्ग का हम पनीर को परिभाषित करने के लिए उपयोग करते हैं, उसमें एक विधि होगी जो हमें यह जांचने की अनुमति देगी कि क्या पनीर किसी विशेष मूल देश से आता है।

हमारे चीज़ के लिए एक वर्ग परिभाषित करें । आइए इस वर्ग को चीज़ कहते हैं:

हमारी कक्षा में दो विधियां हैं। पहली विधि पनीर वस्तु की संरचना को परिभाषित करती है। दूसरा यह जांचने की अनुमति देता है कि पनीर की उत्पत्ति का देश एक निश्चित मूल्य के बराबर है या नहीं।

फिर , आइए हमारे पनीर वर्ग से एक वस्तु बनाएं:

चर "एडम" एक वस्तु है। पनीर से जुड़ा नाम एडम है और इसका मूल देश नीदरलैंड है। >

यह कोड get_country () चीज़ क्लास की विधि। <कोड विधि> get_country ( ) जांचता है कि हमारे "एडम" ऑब्जेक्ट में "मूल" का मान "जर्मनी" के बराबर है या नहीं।

अपना कोड चलाएँ और देखें कि क्या होता है:

हमारे कोड में एक त्रुटि हुई है।

आइए लाइन का विश्लेषण करें कोड जिसे पायथन डिबगर ने गलत के रूप में पहचाना:

कोड की इस पंक्ति में, हम get_country () विधि को कॉल करने के लिए वर्गाकार कोष्ठकों का उपयोग करते हैं। यह एक स्वीकार्य सिंटैक्स नहीं है क्योंकि किसी सूची में आइटम तक पहुंचने के लिए वर्ग कोष्ठक का उपयोग किया जाता है। चूंकि फ़ंक्शन और ऑब्जेक्ट सब्सक्राइब नहीं किए गए हैं, इसलिए हम उन्हें कॉल करने के लिए वर्गाकार कोष्ठकों का उपयोग नहीं कर सकते हैं।

इस त्रुटि को ठीक करने के लिए, हमें चाहिए कोष्ठकों को ब्रेसिज़ से बदलने के लिए:

आइए अपना कोड चलाते हैं और देखते हैं कि क्या होता है:

हमारा कोड ठीक काम कर रहा है। आइए यह जांचने की कोशिश करें कि क्या एडम "नीदरलैंड" से है, यह सुनिश्चित करने के लिए कि हमारा कार्य सभी मामलों में काम करता है, चाहे हमारे द्वारा निर्दिष्ट मूल्य पनीर के मूल देश के समान हो या नहीं:

हमारा कोड रिटर्न:

हमारा कोड तब काम करता है जब हमारे द्वारा निर्दिष्ट मान किसी चीज़ के मूल देश के बराबर हो।

निष्कर्ष

वर्ग के भीतर किसी विधि को कॉल करने के लिए वर्गाकार कोष्ठकों का उपयोग करते समय "लेखन त्रुटि: `विधि` सदस्यता योग्य नहीं है" त्रुटि उत्पन्न होती है। इस त्रुटि को हल करने के लिए, जिस विधि को आप कॉल करना चाहते हैं उसके नाम के बाद केवल घुंघराले ब्रेसिज़ का उपयोग करके कक्षा के तरीकों को कॉल करना सुनिश्चित करें।

अब आप इस सामान्य पायथन त्रुटि को हल करने के लिए तैयार हैं एक पेशेवर प्रोग्रामर !