पायथन 3.x का सुपर मैजिक: रहस्यों को उजागर करना
पायथन 3.x ने अपनी सुपर() विधि में एक आश्चर्यजनक मोड़ पेश किया, जिससे अनुमति मिली बिना तर्क के कॉल करता है। यह प्रतीत होता है कि अहानिकर परिवर्तन महत्वपूर्ण परिणाम और हुड के नीचे अंतर्निहित जादू को वहन करता है। नामकरण. इसमें एक विशेष
क्लाससेल है जो मूल क्लास ऑब्जेक्ट को पुनः प्राप्त करता है, पिछले सुपर दृष्टिकोण को प्रभावित करने वाले रिबाइंडिंग के नुकसान से बचता है।
जादू के परिणामदुर्भाग्य से, यह जादू एक खामी के साथ आता है। सुपर() नाम को किसी भिन्न वेरिएबल, जैसे कि सुपर_, में दोबारा जोड़ने से इसकी कार्यक्षमता बाधित हो सकती है। ऐसा इसलिए होता है क्योंकि सेल केवल तभी बनाई जाती है जब सुपर या
क्लासको एक विधि के भीतर संदर्भित किया जाता है।
व्यावहारिक नुकसानयह व्यवहार जोखिम पैदा कर सकता है बिना सोचे-समझे प्रोग्रामर:
सुपर() को रीबाइंड करने से अप्रत्याशित अपवाद हो सकते हैं।
सुपर(टाइप(सेल्फ), सेल्फ) या सुपर(सेल्फ.__क्लास__, सेल्फ) पर भरोसा करने से परिणाम हो सकते हैं किसी व्युत्पन्न वर्ग से बुलाए जाने पर अनंत पुनरावृत्ति में।बिना डॉट नोटेशन के कॉल करने पर प्रिंट, ऑब्जेक्ट और सूची जैसे बिल्ट-इन
डेवलपर्स के लिए निहितार्थअस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3