Polümorfism sisse Python NÄIDETEGA
Mis on polümorfism?
Polümorfismi võib defineerida kui seisundit, mis esineb mitmel erineval kujul. See on kontseptsioon Python programmeerimine, kus objekt on määratletud Python saab kasutada erineval viisil. See võimaldab programmeerijal määratleda tuletatud klassis mitu meetodit ja sellel on sama nimi, mis on olemas põhiklassis. Sellised stsenaariumid toetavad meetodi ülekoormamist Python.
Polümorfism sisse Operatorse
Sisse operaator Python aitab täita matemaatilisi ja mitmeid muid programmeerimisülesandeid. Näiteks aitab operaator '+' kahe täisarvu tüübi liitmisel Python, ja samamoodi aitab sama operaator stringe ühendada Python programmeerimine.
Võtame näite + (pluss) operaator Python Polümorfismi rakenduse kuvamiseks Python nagu allpool näidatud:
Python kood:
p = 55
q = 77
r = 9.5
g1 = "Guru"
g2 = "99!"
print("the sum of two numbers",p + q)
print("the data type of result is",type(p + q))
print("The sum of two numbers",q + r)
print("the data type of result is", type (q + r))
print("The concatenated string is", g1 + g2)
print("The data type of two strings",type(g1 + g2))
Väljund:
the sum of two numbers 132 the data type of result is <class 'int'> The sum of the two numbers 86.5 the data type of result is <class 'float'> The concatenated string is Guru99! The data type of two strings <class 'str'>
Ülaltoodud näidet võib käsitleda ka operaatori ülekoormuse näitena.
Polümorfism kasutaja määratletud meetodites
Kasutaja määratud meetod Python programmeerimiskeel on meetodid, mille kasutaja loob ja mis deklareeritakse funktsiooni nimega märksõna def abil.
Polümorfism aastal Python programmeerimiskeel saavutatakse meetodi ülekoormamise ja alistamisega. Python defineerib meetodid def märksõnaga ja sama nimega nii alam- kui ka vanemklassis.
Võtame järgmise näite, nagu allpool näidatud: -
Python kood:
from math
import pi
class square:
def __init__(self, length):
self.l = length
def perimeter(self):
return 4 * (self.l)
def area(self):
return self.l * self.l
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
sqr = square(10)
c1 = Circle(4)
print("Perimeter computed for square: ", sqr.perimeter())
print("Area computed for square: ", sqr.area())
print("Perimeter computed for Circle: ", c1.perimeter())
print("Area computed for Circle: ", c1.area())
Väljund:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
Ülaltoodud koodis on kaks kasutaja määratud meetodit, ümbermõõt ja pindala, mis on määratletud ringi ja ruudu klassides.
Nagu ülal näidatud, kutsuvad nii ringiklass kui ka ruuduklass vajaliku väljundi edastamiseks välja sama meetodi nime, mis kuvab polümorfismi omadusi.
Polümorfism funktsioonides
Sisseehitatud funktsioonid Python on kavandatud ja muudetud ühilduvaks mitme andmetüübi täitmiseks. sisse Python, Len() on üks peamisi sisseehitatud funktsioone.
See töötab mitme andmetüübiga: loend, korteež, string ja sõnastik. Funktsioon Len () tagastab kindla teabe, mis on joondatud nende paljude andmetüüpidega.
Järgmine joonis näitab, kuidas polümorfismi saab rakendada Python seoses sisseehitatud funktsioonidega: -
Järgmine programm aitab illustreerida polümorfismi rakendamist Python: -
Python kood:
print ("The length of string Guru99 is ",len("Guru99"))
print("The length of list is ",len(["Guru99","Example","Reader"]))
print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))
Väljund:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
Ülaltoodud näites on Len () funktsioon Python teostab polümorfismi vastavalt stringi, loendi ja sõnastiku andmetüüpide jaoks.
Polümorfism ja pärilikkus
Pärand sisse Python saab defineerida kui programmeerimiskontseptsiooni, kus määratletud alamklass pärib omadused teisest baasklassist Python.
Seal on kaks võtit Python mõisted, mida nimetatakse meetodi alistamiseks ja meetodi ülekoormamiseks.
- Meetodi ülekoormamise korral Python pakub võimalust luua sama nimega meetodeid, et täita või käivitada antud koodijupis erinevaid funktsioone. See võimaldab meetodeid üle koormata ja kasutab neid lihtsamalt erinevate ülesannete täitmiseks.
- In Method overriding, Python alistab väärtuse, mis jagab vanemate ja laste klassides sarnast nime.
Võtame järgmise näite polümorfismi ja pärilikkuse kohta, nagu on näidatud allpool: -
Python kood:
class baseclass:
def __init__(self, name):
self.name = name
def area1(self):
pass
def __str__(self):
return self.name
class rectangle(baseclass):
def __init__(self, length, breadth):
super().__init__("rectangle")
self.length = length
self.breadth = breadth
def area1(self):
return self.length * self.breadth
class triangle(baseclass):
def __init__(self, height, base):
super().__init__("triangle")
self.height = height
self.base = base
def area1(self):
return (self.base * self.height) / 2
a = rectangle(90, 80)
b = triangle(77, 64)
print("The shape is: ", b)
print("The area of shape is", b.area1())
print("The shape is:", a)
print("The area of shape is", a.area1())
Väljund:
The shape is: a triangle The area of a shape is 2464.0 The shape is: a rectangle The area of a shape is 7200
Ülaltoodud koodis on meetoditel sama nimi, mis on määratletud kui init method ja area1 meetod. Klassi ruudu ja ristküliku objekti kasutatakse seejärel kahe meetodi käivitamiseks erinevate ülesannete täitmiseks ja ruudu ja ristküliku pindala väljundi saamiseks.
Polümorfism klassimeetoditega
. Python programmeerimine võimaldab programmeerijatel saavutada polümorfismi ja meetodite ülekoormamist klassi meetoditega. Erinevad klassid Python võivad olla meetodid, mis on deklareeritud sama nimega kõikjal Python kood.
In Python, saab määratleda kaks erinevat klassi. Üks neist oleks alamklass ja see tuletab atribuudid teisest määratletud klassist, mida nimetatakse ülemklassiks.
Järgmine näide illustreerib polümorfismi mõistet klassimeetoditega:
Python kood:
class amazon:
def __init__(self, name, price):
self.name = name
self.price = price
def info(self):
print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.")
class flipkart:
def __init__(self, name, price):
self.name = name
self.price = price
def info(self):
print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.")
FLP = flipkart("Iphone", 2.5)
AMZ = amazon("Iphone", 4)
for product1 in (FLP, AMZ):
product1.info()
Väljund:
This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees. This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.
Ülaltoodud koodis kasutavad kaks erinevat klassi, mida nimetatakse flipkartiks ja amazoniks, samu meetodite nimesid info ja init, et esitada toote vastavad hinnapakkumised ja illustreerida polümorfismi mõistet. Python.
Erinevus meetodi ülekoormuse ja kompileerimisaja polümorfismi vahel
Kompileerimisaegses polümorfismis on kompilaator Python programm kõne lahendab. Kompileerimise aja polümorfism saavutatakse meetodi ülekoormuse kaudu.
. Python kompilaator ei lahenda polümorfismi jaoks kõnesid käitusajal. Seda klassifitseeritakse ka meetodi tühistamiseks, kus samad meetodid kannavad sarnaseid allkirju või omadusi, kuid moodustavad osa erinevatest klassidest.
kokkuvõte
- Polümorfismi võib defineerida kui seisundit, mis esineb mitmel erineval kujul.
- Sisse operaator Python aitab täita matemaatilisi ja mitmeid muid programmeerimisülesandeid.
- Kasutaja määratud meetod Python programmeerimiskeel on meetodid, mille kasutaja loob ja mis deklareeritakse funktsiooni nimega märksõna def abil.
- Polümorfism sisse Python pakub mitmeid soovitavaid omadusi, näiteks soodustab erinevate klasside ja meetodite jaoks kirjutatud koodide korduvkasutatavust.
- Alamklass on tuletatud klass ja see saab oma atribuudid ülemklassilt.
- Polümorfism saavutatakse ka käitusaegse meetodi alistamise ja kompileerimisaja meetodi ülekoormuse kaudu.
- Polümorfism sisse Python saavutatakse ka operaatori ülekoormuse ja klassimeetodite abil.


