Polimorfismo dentro Python con ESEMPI
Cos'è il polimorfismo?
Il polimorfismo può essere definito come una condizione che si manifesta in molte forme diverse. È un concetto in Python programmazione in cui un oggetto definito in Python può essere utilizzato in diversi modi. Consente al programmatore di definire più metodi in una classe derivata e ha lo stesso nome presente nella classe genitore. Tali scenari supportano l'overload del metodo Python.
Polimorfismo dentro OperaTors
Un operatore dentro Python aiuta a svolgere compiti matematici e di programmazione di altro tipo. Ad esempio, l'operatore '+' aiuta a eseguire l'addizione tra due tipi di interi in Python, e allo stesso modo, lo stesso operatore aiuta a concatenare le stringhe in Python programmazione.
Facciamo un esempio di + (più) operatore in Python per visualizzare un'applicazione di Polimorfismo in Python come mostrato di seguito:
Python Codice:
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))
Produzione:
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'>
L'esempio sopra può anche essere considerato come un esempio di sovraccarico dell'operatore.
Polimorfismo nei metodi definiti dall'utente
Un metodo definito dall'utente in Python il linguaggio di programmazione è un metodo creato dall'utente e viene dichiarato utilizzando la parola chiave def con il nome della funzione.
Polimorfismo nel Python il linguaggio di programmazione si ottiene attraverso l'overload e l'override del metodo. Python definisce i metodi con la parola chiave def e con lo stesso nome sia nella classe figlia che in quella genitore.
Prendiamo il seguente esempio come mostrato di seguito: –
Python Codice:
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())
Produzione:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
Nel codice precedente sono presenti due metodi definiti dall'utente, perimetro e area, definiti nelle classi circle e quadrati.
Come mostrato sopra, sia la classe Circle che la classe Square invocano lo stesso nome di metodo visualizzando la caratteristica del polimorfismo per fornire l'output richiesto.
Polimorfismo nelle funzioni
Le funzioni integrate in Python sono progettati e resi compatibili per eseguire diversi tipi di dati. In Python, Len()
è una delle funzioni principali integrate.
Funziona su diversi tipi di dati: elenco, tupla, stringa e dizionario. La funzione Len() restituisce informazioni definite allineate con questi numerosi tipi di dati.
La figura seguente mostra come il polimorfismo può essere applicato in Python in relazione alle funzioni integrate: –
Il programma seguente aiuta a illustrare l'applicazione del polimorfismo in Python: -
Python Codice:
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"}))
Produzione:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
Nell'esempio sopra, la funzione Len () di Python esegue il polimorfismo rispettivamente per i tipi di dati stringa, elenco e dizionario.
Polimorfismo ed ereditarietà
Eredità in Python può essere definito come il concetto di programmazione in cui una classe figlia definita eredita le proprietà da un'altra classe base presente in Python.
Ci sono due chiavi Python concetti denominati sovrascrittura del metodo e sovraccarico del metodo.
- Nel sovraccarico del metodo, Python fornisce la funzionalità di creare metodi che hanno lo stesso nome per eseguire o eseguire funzionalità diverse in un dato pezzo di codice. Consente di sovraccaricare i metodi e di utilizzarli per eseguire compiti diversi in termini più semplici.
- In Metodo override, Python sovrascrive il valore che condivide un nome simile nelle classi padre e figlio.
Prendiamo il seguente esempio di polimorfismo ed ereditarietà come mostrato di seguito: –
Python Codice:
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())
Produzione:
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
Nel codice precedente, i metodi hanno lo stesso nome definito come metodo init e metodo area1. Gli oggetti della classe quadrato e rettangolo vengono quindi utilizzati per invocare i due metodi per eseguire compiti diversi e fornire l'output dell'area del quadrato e del rettangolo.
Polimorfismo con i metodi delle classi
Python la programmazione consente ai programmatori di ottenere il polimorfismo e l'overload dei metodi con metodi di classe. Le diverse classi in Python possono avere metodi dichiarati con lo stesso nome in tutti i file Python codice.
In Python, si possono definire due classi diverse. Una sarebbe la classe figlia e deriva gli attributi da un'altra classe definita denominata classe genitore.
L'esempio seguente illustra il concetto di polimorfismo con metodi di classe: –
Python Codice:
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()
Produzione:
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.
Nel codice sopra, due classi diverse denominate flipkart e amazon utilizzano gli stessi nomi di metodo info e init per fornire rispettive quotazioni di prezzo del prodotto e illustrare ulteriormente il concetto di polimorfismo in Python.
Differenza tra l'overload del metodo e il polimorfismo in fase di compilazione
Nel Polymorphism in fase di compilazione, il compilatore di Python il programma risolve la chiamata. Il polimorfismo in fase di compilazione viene ottenuto tramite l'overload del metodo.
Python il compilatore non risolve le chiamate durante il runtime per il polimorfismo. È anche classificato come overriding del metodo in cui gli stessi metodi portano firme o proprietà simili, ma fanno parte di classi diverse.
Sommario
- Il polimorfismo può essere definito come una condizione che si manifesta in molte forme diverse.
- Un operatore dentro Python aiuta a eseguire attività matematiche e molte altre attività di programmazione.
- Un metodo definito dall'utente in Python il linguaggio di programmazione è un metodo creato dall'utente e viene dichiarato utilizzando la parola chiave def con il nome della funzione.
- Polimorfismo dentro Python offre diverse qualità desiderabili, come ad esempio la promozione della riutilizzabilità dei codici scritti per classi e metodi diversi.
- Una classe figlia è una classe derivata e ottiene i suoi attributi dalla classe genitore.
- Il polimorfismo si ottiene anche tramite l'override del metodo in fase di esecuzione e l'overload del metodo in fase di compilazione.
- Polimorfismo dentro Python si ottiene anche tramite il sovraccarico degli operatori e i metodi di classe.