Polymorfisme i Python med EKSEMPLER
Hva er polymorfisme?
Polymorfisme kan defineres som en tilstand som forekommer i mange forskjellige former. Det er et konsept i Python programmering der et objekt er definert i Python kan brukes på forskjellige måter. Den lar programmereren definere flere metoder i en avledet klasse, og den har samme navn som tilstede i den overordnede klassen. Slike scenarier støtter metodeoverbelastning inn Python.
Polymorfisme i Operatorer
En operatør i Python hjelper med å utføre matematiske og flere andre programmeringsoppgaver. For eksempel hjelper '+'-operatoren med å utføre addisjon mellom to heltallstyper i Python, og på samme måte hjelper den samme operatøren med å sette sammen strenger Python programmering.
La oss ta et eksempel på + (pluss) operatør i Python for å vise en anvendelse av polymorfisme i Python som vist nedenfor:
Python Kode:
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))
Utgang:
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'>
Eksempelet ovenfor kan også betraktes som eksempelet på operatøroverbelastning.
Polymorfisme i brukerdefinerte metoder
En brukerdefinert metode i Python programmeringsspråk er metoder som brukeren oppretter, og det er deklarert ved hjelp av nøkkelordet def med funksjonsnavnet.
Polymorfisme i Python programmeringsspråk oppnås gjennom metodeoverbelastning og overstyring. Python definerer metoder med def nøkkelord og med samme navn i både underordnet og overordnet klasse.
La oss ta følgende eksempel som vist nedenfor: –
Python Kode:
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())
Utgang:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
I koden ovenfor er det to brukerdefinerte metoder, omkrets og areal, definert i sirkel- og kvadratklasser.
Som vist ovenfor, påkaller både sirkelklasse og kvadratklasse det samme metodenavnet som viser egenskapene til polymorfisme for å levere det nødvendige resultatet.
Polymorfisme i funksjoner
Den innebygde funksjoner i Python er designet og gjort kompatible for å utføre flere datatyper. I Python, Len() er en av de viktigste innebygde funksjonene.
Den fungerer på flere datatyper: liste, tuppel, streng og ordbok. Len ()-funksjonen returnerer bestemt informasjon på linje med disse mange datatypene.
Følgende figur viser hvordan polymorfisme kan brukes i Python i forhold til innebygde funksjoner: –
Følgende program hjelper til med å illustrere anvendelsen av polymorfisme i Python: -
Python Kode:
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"}))
Utgang:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
I eksemplet ovenfor, Len () funksjon av Python utfører polymorfisme for henholdsvis streng-, liste- og ordbokdatatyper.
Polymorfisme og arv
Arv i Python kan defineres som programmeringskonseptet der en barneklasse definert arver egenskaper fra en annen basisklasse som er tilstede i Python.
Det er to nøkkel Python begreper kalt metodeoverstyring og metodeoverbelastning.
- Ved metodeoverbelastning, Python gir funksjonen til å lage metoder som har samme navn for å utføre eller utføre forskjellige funksjoner i et gitt kodestykke. Det gjør det mulig å overbelaste metoder og bruker dem til å utføre forskjellige oppgaver i enklere termer.
- I metodeoverstyring, Python overstyrer verdien som deler et lignende navn i foreldre- og barneklasser.
La oss ta følgende eksempel på polymorfisme og arv som vist nedenfor: -
Python Kode:
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())
Utgang:
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
I koden ovenfor har metodene samme navn definert som init-metoden og area1-metoden. Objektet til klassen kvadrat og rektangel brukes deretter til å påkalle de to metodene for å utføre forskjellige oppgaver og gi utdata fra arealet av kvadrat og rektangel.
Polymorfisme med klassemetodene
Ocuco Python programmering gjør det mulig for programmerere å oppnå polymorfisme og metodeoverbelastning med klassemetoder. De forskjellige klassene i Python kan ha metoder som er deklarert i samme navn på tvers av Python kode.
In Python, kan to forskjellige klasser defineres. Den ene ville være barneklasse, og den henter attributter fra en annen definert klasse kalt overordnet klasse.
Følgende eksempel illustrerer konseptet polymorfisme med klassemetoder: -
Python Kode:
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()
Utgang:
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.
I koden ovenfor bruker to forskjellige klasser navngitt som flipkart og amazon de samme metodenavnene info og init for å gi respektive pristilbud på produktet og ytterligere illustrere konseptet polymorfisme i Python.
Forskjellen mellom metodeoverbelastning og kompileringstidspolymorfisme
I kompileringstidspolymorfisme, kompilatoren av Python programmet løser samtalen. Kompileringstidspolymorfisme oppnås gjennom metodeoverbelastning.
Ocuco Python kompilatoren løser ikke kallene i løpet av kjøretiden for polymorfisme. Det er også klassifisert som metodeoverstyrende der de samme metodene har lignende signaturer eller egenskaper, men de utgjør en del av forskjellige klasser.
Sammendrag
- Polymorfisme kan defineres som en tilstand som forekommer i mange forskjellige former.
- En operatør i Python hjelper med å utføre matematiske og flere andre programmeringsoppgaver.
- En brukerdefinert metode i Python programmeringsspråk er metoder som brukeren oppretter, og det er deklarert ved hjelp av nøkkelordet def med funksjonsnavnet.
- Polymorfisme i Python tilbyr flere ønskelige kvaliteter, slik som det fremmer gjenbrukbarhet av koder skrevet for forskjellige klasser og metoder.
- En barneklasse er en avledet klasse, og den får sine attributter fra overordnet klasse.
- Polymorfismen oppnås også gjennom overstyring av kjøretidsmetoden og overbelastning av kompileringsmetoden.
- Polymorfisme i Python oppnås også gjennom operatøroverbelastning og klassemetoder.


