Python Polymorphism

Python பல்லுருவாக்கம் பற்றி கற்றுக்கொள்ளுங்கள்

Python Polymorphism

"polymorphism" என்பது "பல வடிவங்கள்" என்று பொருள்படும், மேலும் நிரலாக்கத்தில் இது பல பொருள்கள் அல்லது வகுப்புகளில் செயல்படுத்தப்படும் ஒரே பெயரில் உள்ள முறைகள்/சார்புகள்/ஆபரேட்டர்களைக் குறிக்கிறது.

Function Polymorphism

வெவ்வேறு பொருள்களில் பயன்படுத்தக்கூடிய ஒரு Python சார்புக்கு உதாரணம் len() சார்பு ஆகும்.

String (சரம்)

சரங்களுக்கு len() எழுத்துகளின் எண்ணிக்கையை வழங்குகிறது:

x = "Hello World!"
print(len(x))

Tuple (டூப்பிள்)

டூப்பிள்களுக்கு len() டூப்பிளில் உள்ள உருப்படிகளின் எண்ணிக்கையை வழங்குகிறது:

mytuple = ("apple", "banana", "cherry")
print(len(mytuple))

Dictionary (அகராதி)

அகராதிகளுக்கு len() அகராதியில் உள்ள விசை/மதிப்பு ஜோடிகளின் எண்ணிக்கையை வழங்குகிறது:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(len(thisdict))

💡 குறிப்பு:

இது Python இல் உள்ளமைக்கப்பட்ட பல்லுருவாக்கத்தின் எடுத்துக்காட்டு. ஒரே len() சார்பு வெவ்வேறு தரவு வகைகளுடன் வேறுபட்ட முறையில் செயல்படுகிறது.

Class Polymorphism

பல்லுருவாக்கம் பெரும்பாலும் வகுப்பு முறைகளில் பயன்படுத்தப்படுகிறது, அங்கு நம்மிடம் ஒரே முறை பெயருடன் பல வகுப்புகள் இருக்கலாம்.

உதாரணமாக, எங்களிடம் மூன்று வகுப்புகள் உள்ளன என்று சொல்லுங்கள்: Car, Boat, மற்றும் Plane, மேலும் அவை அனைத்தும் move() என்ற முறையைக் கொண்டுள்ளன:

எடுத்துக்காட்டு

ஒரே முறையுடன் வெவ்வேறு வகுப்புகள்:

class Car:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model

  def move(self):
    print("Drive!")

class Boat:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model

  def move(self):
    print("Sail!")

class Plane:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model

  def move(self):
    print("Fly!")

car1 = Car("Ford", "Mustang")       #Create a Car object
boat1 = Boat("Ibiza", "Touring 20") #Create a Boat object
plane1 = Plane("Boeing", "747")     #Create a Plane object

for x in (car1, boat1, plane1):
  x.move()

இறுதியில் உள்ள for loop ஐப் பாருங்கள். பல்லுருவாக்கம் காரணமாக மூன்று வகுப்புகளுக்கும் ஒரே முறையை நாம் செயல்படுத்தலாம்.

Inheritance Class Polymorphism

ஒரே பெயருடன் குழந்தை வகுப்புகளைக் கொண்ட வகுப்புகள் பற்றி என்ன? நாம் அங்கு பல்லுருவாக்கத்தைப் பயன்படுத்தலாமா?

ஆம். மேலே உள்ள எடுத்துக்காட்டைப் பயன்படுத்தி Vehicle என்று ஒரு பெற்றோர் வகுப்பை உருவாக்கி, Car, Boat, Plane ஆகியவற்றை Vehicle இன் குழந்தை வகுப்புகளாக உருவாக்கினால், குழந்தை வகுப்புகள் Vehicle முறைகளைப் பெறுகின்றன, ஆனால் அவற்றை மேலெழுதலாம்:

எடுத்துக்காட்டு

Vehicle என்ற வகுப்பை உருவாக்கி, Car, Boat, Plane ஆகியவற்றை Vehicle இன் குழந்தை வகுப்புகளாக ஆக்கவும்:

class Vehicle:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model

  def move(self):
    print("Move!")

class Car(Vehicle):
  pass

class Boat(Vehicle):
  def move(self):
    print("Sail!")

class Plane(Vehicle):
  def move(self):
    print("Fly!")

car1 = Car("Ford", "Mustang")       #Create a Car object
boat1 = Boat("Ibiza", "Touring 20") #Create a Boat object
plane1 = Plane("Boeing", "747")     #Create a Plane object

for x in (car1, boat1, plane1):
  print(x.brand)
  print(x.model)
  x.move()

குழந்தை வகுப்புகள் பெற்றோர் வகுப்பிலிருந்து பண்புகள் மற்றும் முறைகளைப் பெறுகின்றன.

மேலே உள்ள எடுத்துக்காட்டில் Car வகுப்பு காலியாக இருப்பதைக் காணலாம், ஆனால் அது brand, model, மற்றும் move() ஆகியவற்றை Vehicle இலிருந்து பெறுகிறது.

Boat மற்றும் Plane வகுப்புகளும் brand, model, மற்றும் move() ஆகியவற்றை Vehicle இலிருந்து பெறுகின்றன, ஆனால் அவை இரண்டும் move() முறையை மேலெழுதுகின்றன.

பல்லுருவாக்கம் காரணமாக அனைத்து வகுப்புகளுக்கும் ஒரே முறையை நாம் செயல்படுத்தலாம்.

பயிற்சி

உண்மை அல்லது பொய். ஒரு பொருளுக்கு மற்றொரு பொருளின் முறையின் அதே பெயருடன் ஒரு முறை இருக்க முடியாது.

True (உண்மை)
✗ தவறு! பொய். பல்லுருவாக்கம் காரணமாக, வெவ்வேறு வகுப்புகளில் உள்ள வெவ்வேறு பொருள்கள் ஒரே பெயரில் முறைகளைக் கொண்டிருக்கலாம். எடுத்துக்காட்டாக, Car, Boat, மற்றும் Plane ஆகியவை அனைத்தும் move() முறையைக் கொண்டிருக்கலாம்
False (பொய்)
✓ சரி! உண்மை. பல்லுருவாக்கம் காரணமாக, வெவ்வேறு வகுப்புகள் ஒரே முறை பெயர்களைக் கொண்டிருக்கலாம். இது Python OOP இன் ஒரு முக்கிய அம்சமாகும்