पायथन में बहुरूपता क्या है?

Jun 17 2022
पायथन अपनी बहुमुखी प्रतिभा और उपयोगकर्ता के अनुकूल वाक्य रचना के कारण सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक है। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) को समायोजित करने वाली अन्य भाषाओं की तरह, पायथन बहुरूपी है।
बहुरूपता: प्रोग्रामिंग भाषा में एक इकाई कई तरह से व्यवहार कर सकती है।

पायथन अपनी बहुमुखी प्रतिभा और उपयोगकर्ता के अनुकूल वाक्य रचना के कारण सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक है । ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) को समायोजित करने वाली अन्य भाषाओं की तरह, पायथन बहुरूपी है । इसका मतलब है कि पायथन में एक एकल ऑपरेटर, फ़ंक्शन या क्लास विधि के कई उपयोग हो सकते हैं। ये विभिन्न उपयोग सीखने के लिए चुनौतीपूर्ण हो सकते हैं, लेकिन वे अंततः पायथन को एक अधिक कुशल भाषा बनाते हैं।

आज, हम बहुरूपता पर चर्चा करेंगे और यह पायथन में कैसे काम करता है।

हम निम्नलिखित विषयों को कवर करेंगे:

  • बहुरूपता क्या है?
  • पायथन में बहुरूपता के उदाहरण
  • पायथन बहुरूपता ट्यूटोरियल
  • रैपिंग अप और अगले चरण

बहुरूपता यह सिद्धांत है कि एक प्रकार की वस्तु कई प्रकार के रूप ले सकती है। प्रोग्रामिंग के संदर्भ में, इसका मतलब है कि प्रोग्रामिंग भाषा में एक इकाई संदर्भ के आधार पर कई तरह से व्यवहार कर सकती है। यह उसी तरह है जैसे "एक्सप्रेस" जैसा शब्द एक वाक्य में क्रिया के रूप में, दूसरे वाक्य में संज्ञा और तीसरे वाक्य में विशेषण के रूप में कार्य कर सकता है। पृष्ठ पर अक्षरों का क्रम नहीं बदलता है, लेकिन वे वाक्य में जो अर्थ जोड़ते हैं वह प्रत्येक मामले में मौलिक रूप से भिन्न होता है। इसी तरह, बहुरूपी प्रोग्रामिंग भाषाओं में, एक इकाई अलग-अलग संदर्भों में अलग तरह से कार्य कर सकती है।

पायथन में बहुरूपता के उदाहरण

बहुरूपता पायथन की एक बुनियादी स्थिति है, और यह प्रभावित करती है कि भाषा कई स्तरों पर कैसे काम करती है। आज, हम पायथन में ऑपरेटरों, कार्यों और वर्ग विधियों के बहुरूपता पर ध्यान केंद्रित करेंगे।

ऑपरेटर बहुरूपता

Unsplash . पर गायत्री मल्होत्रा ​​द्वारा फोटो

ऑपरेटर बहुरूपता, या ऑपरेटर ओवरलोडिंग, का अर्थ है कि एक प्रतीक का उपयोग कई कार्यों को करने के लिए किया जा सकता है । इसका सबसे सरल उदाहरण अतिरिक्त ऑपरेटर है +। विभिन्न डेटा प्रकारों के संबंध में पायथन का अतिरिक्त ऑपरेटर अलग तरह से काम करता है।

उदाहरण के लिए, यदि +दो पूर्णांकों पर कार्य करता है, तो परिणाम योगात्मक होता है, जो दो पूर्णांकों का योग लौटाता है ।

int1 = 10
int2 = 15
print(int1 + int2)
# returns 25

हालांकि, अगर दो स्ट्रिंग्स पर अतिरिक्त ऑपरेटर का उपयोग किया जाता है, तो यह स्ट्रिंग्स को जोड़ता है। यहां एक उदाहरण दिया गया है कि +ऑपरेटर स्ट्रिंग डेटा प्रकारों पर कैसे कार्य करता है।

str1 = "10"
str2 = "15"
print(str1 + str2)
# returns 1015

समारोह बहुरूपता

Unsplash . पर फ्रीस्टॉक्स द्वारा फोटो

पायथन में कुछ कार्य बहुरूपी भी हैं, जिसका अर्थ है कि वे विभिन्न प्रकार की जानकारी प्राप्त करने के लिए कई डेटा प्रकारों और संरचनाओं पर कार्य कर सकते हैं।

उदाहरण के लिए, पायथन के अंतर्निहित len()फ़ंक्शन का उपयोग किसी वस्तु की लंबाई वापस करने के लिए किया जा सकता है। हालांकि, यह ऑब्जेक्ट के डेटा प्रकार और संरचना के आधार पर ऑब्जेक्ट की लंबाई को अलग -अलग तरीके से मापेगा । उदाहरण के लिए, यदि ऑब्जेक्ट एक स्ट्रिंग है, तो len()फ़ंक्शन स्ट्रिंग में वर्णों की संख्या लौटाएगा। यदि ऑब्जेक्ट एक सूची है, तो यह सूची में प्रविष्टियों की संख्या लौटाएगा।

यहां एक उदाहरण दिया गया है कि len()फ़ंक्शन स्ट्रिंग्स और सूचियों पर कैसे कार्य करता है:

str1 = "animal"
print(len(str1))
# returns 6
list1 = ["giraffe","lion","bear","dog"]
print(len(list1))
# returns 4

वर्ग और विधि बहुरूपता

Unsplash . पर ल्यूकेन सबेलानो द्वारा फोटो

पायथन की बहुरूपी प्रकृति कक्षाओं और विधियों को पुन: प्रस्तुत करना आसान बनाती है। याद रखें कि एक वर्ग एक खाका की तरह है , और एक वस्तु उस खाका का एक ठोस तात्कालिकता है । तो, एक विधि जो एक वर्ग का हिस्सा है, उन वस्तुओं में फिर से आ जाएगी जो उस वर्ग को तुरंत चालू करती हैं। इसी तरह, यदि आप पहले से मौजूद वर्ग से एक नया वर्ग उत्पन्न करते हैं, तो नया वर्ग पहले से मौजूद वर्ग के तरीकों को इनहेरिट करेगा। इस परिदृश्य में नए वर्ग को "चाइल्ड क्लास" कहा जाता है, जबकि पहले से मौजूद क्लास को "पैरेंट क्लास" कहा जाता है।

यहां एक पैरेंट क्लास और एक चाइल्ड क्लास का उदाहरण दिया गया है जो इससे व्युत्पन्न हुई है। ध्यान दें कि मूल वर्ग विधि स्थापित करता है type, इसलिए बाल वर्ग को वह विधि विरासत में मिलती है। बाल वर्ग में विधि को फिर से परिभाषित किया गया है, हालांकि, बाल वर्ग से तत्काल वस्तुओं को फिर से परिभाषित विधि का उपयोग किया जाता है। इसे " विधि ओवरराइडिंग " कहा जाता है ।

# Define parent class Animal
class Animal:
# Define method
    def type(self):
        print("animal")
# Define child class Dog    
class Dog (Animal):
    def type(self):
        print("dog")

# Initialize objects
obj_bear = Animal()
obj_terrier = Dog()
obj_bear.type()
# returns animal
obj_terrier.type()
# returns dog

एक समान सिद्धांत उन वर्गों पर लागू होता है जो एक दूसरे से स्वतंत्र होते हैं। उदाहरण के लिए, कल्पना करें कि आप दो नए वर्ग बना रहे हैं: Lionऔर Giraffe.

class Lion:
    def diet(self):
        print(“carnivore”)
class Giraffe:
    def diet(self):
        print(“herbivore”)
obj_lion=Lion()
obj_giraffe=Giraffe()

obj_lion.diet()
# returns carnivore
obj_giraffe.diet()
# returns herbivore

पायथन बहुरूपता ट्यूटोरियल

Unsplash . पर मार्कस विंकलर द्वारा फोटो

एक नया कोडिंग कौशल सीखने का सबसे अच्छा तरीका वास्तव में इसका अभ्यास करना है । बहुरूपता को क्रिया में देखने के लिए नीचे दिए गए उदाहरणों में कोड चलाने का प्रयास करें!
सबसे पहले, आइए ऑपरेटर बहुरूपता का अभ्यास करें। हम +पूर्णांकों को जोड़ने के लिए 2और 3स्ट्रिंग्स को संयोजित करते समय “2”ऑपरेटर का उपयोग करेंगे “3”

int1 = 2
int2 = 3
print(int1+int2)
str1 = "2"
str2 = "3"
print(str1+str2)

---> 5
    23

str1="numbers"
print(len(str1))
list1=["1","2","3","4"]
print(len(list1))

---> 7
     4

class Fish:
       def type(self):
             print("fish")
class Shark(Fish):
    def type(self):
          print("shark")
obj_goldfish=Fish()
obj_hammerhead=Shark()
obj_goldfish.type()
obj_hammerhead.type()

---> fish
     shark

class Turtle:
    def type(self):
        print("turtle")class Frog:
    def type(self):
        print("frog")
obj_sea_turtle=Turtle()
obj_treefrog=Frog()
obj_sea_turtle.type()
obj_treefrog.type()
---> turtle
     frog

Unsplash . पर जेस बेली द्वारा फोटो

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

मुझे इस बारे में आपके विचार जानना अच्छा लगेगा, इसलिए नीचे टिप्पणी में मुझसे बेझिझक संपर्क करें!

— अगर इस लेख ने आपकी किसी भी तरह से मदद की है, तो इसे उन 2 दोस्तों के साथ साझा करने पर विचार करें जिनकी आपको परवाह है।

तब तक जिंदा रहो।

धन्यवाद