Polymorfisme in Python met VOORBEELDEN
Wat is polymorfisme?
Polymorfisme kan worden gedefinieerd als een aandoening die in veel verschillende vormen voorkomt. Het is een concept in Python programmeren waarin een object is gedefinieerd in Python kan op verschillende manieren gebruikt worden. Hiermee kan de programmeur meerdere methoden definiëren in een afgeleide klasse, en deze heeft dezelfde naam als aanwezig in de bovenliggende klasse. Dergelijke scenario's ondersteunen overbelasting van methoden Python.
Polymorfisme in Operaverdraaid
Een operator in Python helpt bij het uitvoeren van wiskundige en verschillende andere programmeertaken. De operator '+' helpt bijvoorbeeld bij het uitvoeren van optellingen tussen twee gehele getallen in Python, en op dezelfde manier helpt dezelfde operator bij het samenvoegen van strings in Python programmering.
Laten we een voorbeeld nemen van + (plus) operator in Python om een toepassing van polymorfisme weer te geven Python zoals hieronder aangegeven:
Python Code:
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))
Output:
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'>
Het bovenstaande voorbeeld kan ook worden beschouwd als een voorbeeld van operatoroverbelasting.
Polymorfisme in door de gebruiker gedefinieerde methoden
Een door de gebruiker gedefinieerde methode in de Python programmeertaal zijn methoden die de gebruiker maakt, en deze wordt gedeclareerd met behulp van het trefwoord def met de functienaam.
Polymorfisme in de Python programmeertaal wordt bereikt door overbelasting en overschrijving van methoden. Python definieert methoden met het trefwoord def en met dezelfde naam in zowel de onderliggende als de bovenliggende klasse.
Laten we het volgende voorbeeld nemen, zoals hieronder weergegeven: –
Python Code:
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())
Output:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
In de bovenstaande code zijn er twee door de gebruiker gedefinieerde methoden, omtrek en oppervlakte, gedefinieerd in cirkel- en vierkante klassen.
Zoals hierboven weergegeven, roepen zowel de cirkelklasse als de vierkante klasse dezelfde methodenaam aan, die het kenmerk van polymorfisme weergeeft om de vereiste uitvoer te leveren.
Polymorfisme in functies
De ingebouwde functies in Python zijn ontworpen en compatibel gemaakt om verschillende gegevenstypen uit te voeren. In Python, Len()
is een van de belangrijkste ingebouwde functies.
Het werkt op verschillende gegevenstypen: lijst, tuple, string en woordenboek. De functie Len () retourneert definitieve informatie die is afgestemd op deze vele gegevenstypen.
De volgende afbeelding laat zien hoe polymorfisme kan worden toegepast in Python met betrekking tot ingebouwde functies: –
Het volgende programma helpt bij het illustreren van de toepassing van polymorfisme in Python: -
Python Code:
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"}))
Output:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
In het bovenstaande voorbeeld is de functie Len () van Python voert polymorfisme uit voor respectievelijk string-, lijst- en woordenboekgegevenstypen.
Polymorfisme en erfelijkheid
Erfenis binnen Python kan worden gedefinieerd als het programmeerconcept waarbij een gedefinieerde onderliggende klasse eigenschappen overerft van een andere basisklasse die aanwezig is Python.
Er zijn twee sleutels Python concepten die 'methode-overriding' en 'methode-overbelasting' worden genoemd.
- Bij overbelasting van de methode, Python biedt de mogelijkheid om methoden te creëren die dezelfde naam hebben om verschillende functionaliteiten in een bepaald stuk code uit te voeren of uit te voeren. Het maakt het mogelijk om methoden te overbelasten en gebruikt ze om verschillende taken in eenvoudiger bewoordingen uit te voeren.
- Bij Methode overschrijven, Python overschrijft de waarde die een vergelijkbare naam heeft in de bovenliggende en onderliggende klassen.
Laten we het volgende voorbeeld van polymorfisme en overerving nemen, zoals hieronder weergegeven: –
Python Code:
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())
Output:
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
In bovenstaande code hebben de methoden dezelfde naam, gedefinieerd als de init-methode en de area1-methode. Het object van de klassen vierkant en rechthoek wordt vervolgens gebruikt om de twee methoden aan te roepen om verschillende taken uit te voeren en de uitvoer van de oppervlakte van vierkant en rechthoek te leveren.
Polymorfisme met de klassenmethoden
De Python Door te programmeren kunnen programmeurs polymorfisme en methode-overbelasting met klassenmethoden bereiken. De verschillende klassen binnen Python kan methoden hebben die overal in dezelfde naam worden gedeclareerd Python code.
In Python, kunnen twee verschillende klassen worden gedefinieerd. De ene zou een kindklasse zijn en deze ontleent attributen aan een andere gedefinieerde klasse die de ouderklasse wordt genoemd.
Het volgende voorbeeld illustreert het concept van polymorfisme met klassemethoden: –
Python Code:
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()
Output:
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.
In de bovenstaande code gebruiken twee verschillende klassen, genaamd Flipkart en Amazon, dezelfde methodenamen info en init om respectievelijke prijsopgaven van het product te verstrekken en het concept van polymorfisme verder te illustreren. Python.
Verschil tussen overbelasting van methoden en polymorfisme tijdens het compileren
In compile-time Polymorphism is de compiler van de Python programma lost de oproep op. Compile-time polymorfisme wordt bereikt door overbelasting van methoden.
De Python compiler lost de oproepen voor polymorfisme tijdens runtime niet op. Het wordt ook geclassificeerd als methode-overriding waarbij dezelfde methoden vergelijkbare handtekeningen of eigenschappen hebben, maar deel uitmaken van verschillende klassen.
Samenvatting
- Polymorfisme kan worden gedefinieerd als een aandoening die in veel verschillende vormen voorkomt.
- Een operator in Python helpt bij het uitvoeren van wiskundige en verschillende andere programmeertaken.
- Een door de gebruiker gedefinieerde methode in de Python programmeertaal zijn methoden die de gebruiker maakt, en deze wordt gedeclareerd met behulp van het trefwoord def met de functienaam.
- Polymorfisme in Python biedt verschillende wenselijke kwaliteiten, zoals het bevorderen van de herbruikbaarheid van codes die voor verschillende klassen en methoden zijn geschreven.
- Een onderliggende klasse is een afgeleide klasse en krijgt zijn attributen van de bovenliggende klasse.
- Het polymorfisme wordt ook bereikt door het overschrijven van de runtime-methode en het overbelasten van de compile-time-methode.
- Polymorfisme in Python wordt ook bereikt door operatoroverbelasting en klassemethoden.