सुपर जावास्क्रिप्ट क्लास

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

पायथन सुपर () विधि आपको चाइल्ड क्लास के अंदर पैरेंट क्लास के तरीकों तक पहुंचने की अनुमति देती है। यह कोड में दोहराव को कम करने में मदद करता है। सुपर () कोई तर्क नहीं लेता है। ऑब्जेक्ट उन्मुख प्रोग्रामिंग भाषाओं की मुख्य विशेषताओं में से एक - जैसे पायथन विरासत है। वंशानुक्रम तब होता है जब एक नया वर्ग नई कक्षा बनाने के लिए किसी अन्य वर्ग के कोड का उपयोग करता है।

जब आप कक्षाओं को इनहेरिट करते हैं, तो आप मूल वर्ग से विधियों तक पहुँच प्राप्त कर सकते हैं। यह वह जगह है जहां सुपर () फ़ंक्शन आता है।

यह ट्यूटोरियल उदाहरणों के साथ पायथन में इनहेरिटेंस की मूल बातों पर चर्चा करेगा। इसके बाद, हम इस बारे में बात करेंगे कि मूल्यों के लिए सुपर () फ़ंक्शन का उपयोग कैसे करें और मूल वर्ग से इनहेरिट करने के तरीके।

Super Python क्या है?

h2>

सुपर-पायथन () विधि आपको मूल वर्ग में विधियों तक पहुँचने की अनुमति देती है। आप सुपर () को उस वर्ग में प्रदर्शन विधियों के एक तरीके के रूप में सोच सकते हैं जिससे दूसरी कक्षा विरासत में मिली है

यहां सुपर () विधि के लिए वाक्यविन्यास है।

सुपर () विधि कोई तर्क नहीं लेती है। आप उस विधि को निर्दिष्ट करते हैं जिसे आप सुपर () विधि के बाद प्राप्त करना चाहते हैं। पिछले पायथन वर्ग को खाद्य वर्ग की __init __ () विधि से मान विरासत में मिलते हैं। हम सुपर () क्लास मेथड को फूड क्लास से इनहेरिट किए गए मानों के लिए कहते हैं। एक नया वर्ग नए एक वर्ग की संरचना को परिभाषित करने के लिए मौजूदा वर्ग के कोड का उपयोग करता है

विरासत के बारे में सोचने का एक तरीका यह देखना है कि बच्चे अपने बच्चों से किस प्रकार विरासत में मिले गुण।

पायथन में, दो प्रकार की कक्षाएं होती हैं:.

  • बच्चों के लिए कक्षाएं (या "उपवर्ग") इनहेरिट विधियों और चर। बाल वर्गों को कभी-कभी बहन वर्ग कहा जाता है
  • मुख्य वर्ग (या "आधार वर्ग") वे वर्ग हैं जिनके मूल्य ‚Äã‚Äãविरासत में प्राप्त किए जा सकते हैं

super () Python:. बैंक में खाता रखने वाले लोगों की साख का ट्रैक, हम एक वर्ग बनाना चाहते हैं जो खाता सत्यापन के लिए डेटा संग्रहीत करता है हम इसे इस कोड का उपयोग करके कर सकते हैं:.

यह कोड एक चालू खाता प्रोजेक्ट बनाता है।

अब, मान लीजिए कि हम एक क्लास बनाना चाहते हैं जो बच्चों के बैंक खातों के लिए प्रोजेक्ट को स्टोर करे, जिसे हम करेंगे ChildAccount को कॉल करें। कक्षा चेकिंगअकाउंट वर्ग पर आधारित होनी चाहिए जिसे हमने पहले परिभाषित किया था। e सुपर () फ़ंक्शन का उपयोग कर सकता है।

सुपर () आपको चाइल्ड क्लास के भीतर पैरेंट क्लास के तरीकों को एक्सेस करने की अनुमति देता है। p>

हमारे उदाहरण में, हमारे मूल वर्ग, इसे चेकिंगअकाउंट कहा जाता है और हमारे बच्चे वर्ग को चाइल्डअकाउंट कहा जाता है। चेकिंग अकाउंट एक बैंक खाते के लिए प्रोजेक्ट बनाता है और चाइल्ड अकाउंट अपनी खुद की क्लास बनाने के लिए चेकिंग अकाउंट से मान इनहेरिट करता है।

अब, मान लें कि हम चाहते हैं कि ChildAccount वर्ग हमारे CheckingAccount में संग्रहीत मानों को इनहेरिट करे। लेकिन हम यह भी चाहते हैं कि यह खाता is_child नामक एक नया मान संग्रहीत करे, जो डिफ़ॉल्ट रूप से सही होना चाहिए।

हम इसका उपयोग करके अपना नया ChildAccount वर्ग बना सकते हैं यह कोड:

यह कोड हमारे नए चाइल्ड अकाउंट वर्ग के लिए एक प्रोजेक्ट बनाता है। हम सुपर () पद्धति का उपयोग बैलेंस चेकिंग अकाउंट वर्ग के नाम और मूल्यों को इनहेरिट करने के लिए करते हैं। हम अपनी कक्षा की पहली पंक्ति में कोष्ठकों में चेकिंगअकाउंट मूल वर्ग निर्दिष्ट करते हैं।

यह दर्शाता है कि सुपर () आपको सभी मूल्यों को इनहेरिट करने की अनुमति देता है दूसरे वर्ग से। लेकिन, हमारे कोड में, हमने is_child नामक एक नया मान भी घोषित किया है। यह मान किसी भी ChildAccount के लिए सुलभ नहीं होगा क्योंकि इसे ChildAccount वर्ग

एक चाइल्ड खाता धारक के लिए हमारी कक्षा का एक उदाहरण बनाने के लिए, हम इस कोड का उपयोग कर सकते हैं:

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

हमने ChildAccount वर्ग का एक उदाहरण घोषित किया है जो Python चर लिन को सौंपा गया है। lynn एक वर्ग वस्तु है क्योंकि हम एक वस्तु का उपयोग करके lynn के मान की घोषणा कर रहे थे।

लिन के खाते में $200 है और is_child डिफ़ॉल्ट रूप से सत्य है। इसके बाद, हमने नाम, बैलेंस, is_child मान मुद्रित किए एसीसी की लिन आंटी के साथ संबद्ध। हम इन मानों को कंसोल में प्रिंट () पायथन विधि का उपयोग करके प्रिंट करते हैं।

हमें विरासत में क्यों मिला चेकिंग अकाउंट वर्ग से नाम और बैलेंस, हम उन्हें अपने कोड में उपयोग करने में सक्षम थे। हालांकि, लिन के खाते में is_child के लिए मानों का एक सेट भी है, जो ChildAccount के सभी उदाहरणों के लिए डिफ़ॉल्ट रूप से सही पर सेट है।

सुपर () पायथन: इनहेरिट मेथड्स

या आप बहुस्तरीय विरासत के साथ super () का उपयोग कर सकते हैं। इस उदाहरण के लिए, हम सुपर () के साथ सिंगल लेवल इनहेरिटेंस पर फोकस करेंगे।

अपने पिछले उदाहरण में, हमने इनहेरिट करने के लिए super () का इस्तेमाल किया था। मान चेकिंग अकाउंट क्लास में स्टोर किए जाते हैं और उन्हें चाइल्ड अकाउंट क्लास में उपलब्ध कराते हैं। लेकिन क्या होगा अगर हम किसी विधि से विरासत में प्राप्त करना चाहते हैं और उसकी प्रतिक्रिया को संशोधित करना चाहते हैं

कोई भी वर्ग हमारे CheckingAccount पर वापस प्रारंभ से जाएं:

में इस वर्ग में हमने उन मूल्यों के लिए डिज़ाइन को परिभाषित किया है जिन्हें कक्षा को स्टोर करना चाहिए - नाम और बैलेंस। हमने चेकबैलेंस () नामक एक विधि को परिभाषित किया है जो उपयोगकर्ता को अपना बैलेंस चेक करने की अनुमति देता है

अब मान लीजिए कि हम चेकबैलेंस () को एक्सेस करने योग्य बनाना चाहते हैं हमारा चाइल्ड अकाउंट। हम यह कहते हुए एक संदेश भी प्रिंट करना चाहते हैं कि "आपके पास एक चाइल्ड अकाउंट है!" यह कंसोल पर उपयोगकर्ता के बैलेंस के प्रिंट होने से पहले दिखाई देता है।

हम अपनी विरासत में मिली विधियों को इस तरह एक्सेस कर सकते हैं:

हमने चेकबैलेंस () विधि चाइल्डअकाउंट वर्ग का एक नया संस्करण घोषित किया है। यह पहला संस्करण प्रदर्शित करता है "आपके पास एक चाइल्ड खाता है!" कंसोल के लिए, इसलिए हमारा सुपर () कोड मदर क्लास के चेकबैलेंस () <विधि / em> के लिए उपयोग करता है .

इस मामले में, जब सुपर (). चेकबैलेंस () निष्पादित किया जाता है, चेकिंगअकाउंट वर्ग के चेकबैलेंस () फ़ंक्शन को निष्पादित किया जाता है। जो कंसोल पर उपयोगकर्ता के संतुलन को प्रदर्शित करता है

अब हम लिन की ओर से अपनी चेकबैलेंस () पद्धति तक पहुंचने का प्रयास करेंगे।

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

जब हम lynn.checkBalance () विधि कहते हैं, तो हमारी ChildAccount.checkBalance () पद्धति में कोड दौड़ है। , सुपर ऑब्जेक्ट कोड को CheckingAccount.checkBalance () विधि में निष्पादित करता है।

super () फ़ंक्शन हमें मूल विधियों का उपयोग करने की अनुमति देता है, जबकि अभी भी हमारे चाइल्ड क्लास में उन तरीकों को ओवरराइड करने में सक्षम है। सुपर () फ़ंक्शन आपको अधिक पठनीय कोड लिखने में मदद करता है क्योंकि आप मौजूदा कार्यों से कोड का पुन: उपयोग कर सकते हैं।

इस ट्यूटोरियल में उदाहरणों के साथ चर्चा की गई है कि सुपर () फ़ंक्शन का उपयोग कैसे करें . मूल वर्ग से मूल्यों और विधियों को इनहेरिट करें। अब आप पायथन प्रो की तरह सुपर () फ़ंक्शन का उपयोग शुरू करने के लिए ज्ञान से लैस हैं!

पायथन प्रोग्रामिंग पर अधिक संसाधनों के लिए, हमारे पायथन लर्निंग गाइड