Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में बहुरूपता

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

ऑपरेटरों में बहुरूपता

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

उदाहरण

a = 23
b = 11
c = 9.5
s1 = "Hello"
s2 = "There!"
print(a + b)
print(type(a + b))
print(b + c)
print(type (b + c))
print(s1 + s2)
print(type(s1 + s2))

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

आउटपुट

34
20.5
HelloThere!

अंतर्निहित कार्यों में बहुरूपता

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

उदाहरण

str = 'Hi There !'
tup = ('Mon','Tue','wed','Thu','Fri')
lst = ['Jan','Feb','Mar','Apr']
dict = {'1D':'Line','2D':'Triangle','3D':'Sphere'}
print(len(str))
print(len(tup))
print(len(lst))
print(len(dict))

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

आउटपुट

10
5
4
3

उपयोगकर्ता-परिभाषित विधियों में बहुरूपता

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

उदाहरण

from math import pi

class Rectangle:
   def __init__(self, length, breadth):
      self.l = length
      self.b = breadth
   def perimeter(self):
      return 2*(self.l + self.b)
   def area(self):
      return self.l * self.b

class Circle:
   def __init__(self, radius):
      self.r = radius
   def perimeter(self):
      return 2 * pi * self.r
   def area(self):
      return pi * self.r ** 2

# Initialize the classes
rec = Rectangle(5,3)
cr = Circle(4)
print("Perimter of rectangel: ",rec.perimeter())
print("Area of rectangel: ",rec.area())

print("Perimter of Circle: ",cr.perimeter())
print("Area of Circle: ",cr.area())

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

आउटपुट

Perimter of rectangel: 16
Area of rectangel: 15
Perimter of Circle: 25.132741228718345
Area of Circle: 50.26548245743669

  1. टिंकर पायथन में बंधनेवाला फलक

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

  1. पायथन में बाइनरी ट्री का व्यास

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें पेड़ के व्यास की लंबाई की गणना करनी है। बाइनरी ट्री का व्यास वास्तव में एक पेड़ में किन्हीं दो नोड्स के बीच सबसे लंबे पथ की लंबाई है। जरूरी नहीं कि यह रास्ता जड़ से ही गुजरे। तो अगर पेड़ नीचे जैसा है, तो व्यास 3 होगा क्योंकि पथ की लंबाई [4,2,1,3] या [5,2,1

  1. पायथन में विरासत

    इस लेख में, हम पायथन 3.x में इनहेरिटेंस और एक्सटेंडिंग क्लासेस सीखेंगे। या पहले। वंशानुक्रम वास्तविक दुनिया के संबंधों का अच्छी तरह से प्रतिनिधित्व करता है, पुन:प्रयोज्य प्रदान करता है और पारगमन का समर्थन करता है। यह तेजी से विकास समय, आसान रखरखाव और विस्तार में आसान प्रदान करता है। वंशानुक्रम को