पायथन में मेथड ओवरलोडिंग क्या है और यह कैसे काम करता है?



यह लेख बताता है कि अजगर में विधि अधिभार क्या है और यह कैसे काम करता है। विधि को गहराई से समझाने के लिए दो अलग-अलग उदाहरण हैं।

दो विधियों में समान नाम नहीं हो सकता है । पायथन में विधि अधिभार एक विशेषता है जो एक ही ऑपरेटर को अलग-अलग अर्थ रखने की अनुमति देता है। इस लेख में, हम पायथन में विधि अधिभार सुविधा पर एक नज़र डालेंगे और इसका उपयोग कैसे किया जाता हैनिम्न अनुक्रम में विधियों को ओवरलोड करना:

ओवरलोडिंग क्या है?

ओवरलोडिंग एक फ़ंक्शन या एक ऑपरेटर की क्षमता है जो अलग-अलग तरीकों से व्यवहार करने के लिए मापदंडों के आधार पर पारित किया जाता है , या ऑपरेटर जिस पर कार्य करता है।





कुछ के फायदे अधिभार का उपयोग कर रहे हैं:

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



  • ओवरलोडिंग भी कोड स्पष्टता में सुधार करती है और जटिलता को समाप्त करती है।

ओवरलोडिंग एक बहुत ही उपयोगी अवधारणा है। हालाँकि, इसकी एक संख्या है नुकसान इसके साथ जुड़ा हुआ है।

  • ओवरलोडिंग जब उपयोग किया जाता है तो भ्रम पैदा कर सकता है सीमाएँ। जब अत्यधिक उपयोग किया जाता है, तो यह अतिभारित कार्यों का प्रबंधन करने के लिए बोझिल हो जाता है।



पायथन में विधि ओवरलोडिंग

पायथन में, आप एक विधि बना सकते हैं जिसे विभिन्न तरीकों से बुलाया जा सकता है। तो, आपके पास एक विधि हो सकती है जिसमें शून्य, एक या अधिक संख्या में पैरामीटर हैं। विधि परिभाषा के आधार पर, हम इसे शून्य, एक या अधिक तर्कों के साथ कह सकते हैं।

किसी एक विधि या कार्य को देखते हुए, मापदंडों की संख्या आपके द्वारा निर्दिष्ट की जा सकती है। एक ही तरीके को अलग-अलग तरीके से कॉल करने की इस प्रक्रिया को मेथड ओवरलोडिंग कहा जाता है।

विधि अधिभार उदाहरण

अब जब आप जानते हैं कि पायथन में विधि अधिभार क्या है, तो आइए एक उदाहरण लेते हैं। यहां, हम एक के साथ एक क्लास बनाते हैं नमस्कार() । इस पद्धति का पहला पैरामीटर कोई भी सेट नहीं है। यह हमें एक पैरामीटर के साथ या इसके बिना कॉल करने का विकल्प देगा।

c ++ इंट इंट सरणी

क्लास के आधार पर एक ऑब्जेक्ट भी बनाया जाता है और हम शून्य और एक पैरामीटर का उपयोग करके इसकी विधि को कॉल करेंगे।

उदाहरण 1:

#! / usr / bin / env python class Person: def Hello (आत्म, नाम = कोई नहीं): यदि नाम कोई नहीं है: प्रिंट ('हैलो' + नाम) और: प्रिंट ('हैलो') # क्रिएट उदाहरण obj = व्यक्ति () # मेथड ओब्जे.हेलो () # मेथड विथ ओब्जेक्टर हेजल.हेलो ('एडुरेका')

आउटपुट:

नमस्ते नमस्ते एडुर्का

ओवरलोडिंग विधि को स्पष्ट करने के लिए, अब हम दो तरीकों से हैलो () विधि को कॉल कर सकते हैं:

obj.Hello () obj.Hello ('एडुरेका')

उपरोक्त उदाहरण में, हमने एक विधि बनाई है जिसे अनुमति देने के लिए परिभाषित किए जाने की तुलना में कम तर्कों के साथ कहा जा सकता है। इसके अलावा, यह दो तक सीमित नहीं है चर और आपकी विधि में अधिक चर हो सकते हैं जो वैकल्पिक हैं।

अब दूसरे को लेते हैं उदाहरण में ओवरलोडिंग विधि को समझने के लिए ।

xml और html में क्या अंतर है

उदाहरण 2:

निम्नलिखित उदाहरण में, हम क्षेत्र विधि को अधिभारित करेंगे। यदि कोई तर्क नहीं है तो यह 0. लौटाता है। यदि हमारे पास एक भी तर्क है, तो यह मान का वर्ग लौटाता है और मानता है कि आप एक वर्ग के क्षेत्रफल की गणना कर रहे हैं। इसके अलावा, अगर हमारे पास दो तर्क हैं तो यह दो मूल्यों के उत्पाद को वापस करता है और मानता है कि आप एक आयत के क्षेत्र की गणना कर रहे हैं।

# वर्ग वर्ग गणना: # क्षेत्र विधि डीफ़ एरिया (स्वयं, x = कोई नहीं, y = कोई नहीं): यदि x! = कोई नहीं और y! = कोई नहीं: रिटर्न x * y elif x! = कोई नहीं: x x * x और लौटें: नहीं! 0 # ऑब्जेक्ट obj = कंप्यूट () # शून्य तर्क प्रिंट ('एरिया मान:', obj.area ()) # एक तर्क प्रिंट ('एरिया वैल्यू:', obj.area (4)) # दो तर्क प्रिंट ('क्षेत्र) मान: ', obj.area (3, 5))

उपरोक्त कोड हमें निम्नलिखित देगा आउटपुट:

क्षेत्र मूल्य: 0 क्षेत्र मूल्य: 16 क्षेत्र मूल्य: 15

इसके साथ, हम अपने लेख के अंत में आ गए हैं। मुझे आशा है कि आप समझ गए होंगे कि अजगर में विधि अधिभार क्या है और यह कैसे काम करता है।

अपने विभिन्न अनुप्रयोगों के साथ अजगर पर गहराई से ज्ञान प्राप्त करने के लिए, आप लाइव के लिए नामांकन कर सकते हैं 24/7 समर्थन और आजीवन पहुंच के साथ Edureka द्वारा।

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