Polymorphisme dans Python avec des EXEMPLES
Qu'est-ce que le polymorphisme ?
Le polymorphisme peut être défini comme une condition qui se présente sous de nombreuses formes différentes. C'est un concept dans Python programmation dans laquelle un objet défini dans Python peut être utilisé de différentes manières. Il permet au programmeur de définir plusieurs méthodes dans une classe dérivée et porte le même nom que celui présent dans la classe parent. De tels scénarios prennent en charge la surcharge de méthodes dans Python.
Polymorphisme dans Operajeudi
Un opérateur en Python permet d'effectuer des tâches mathématiques et plusieurs autres tâches de programmation. Par exemple, l'opérateur « + » permet d'effectuer une addition entre deux types entiers dans Python, et de la même manière, le même opérateur aide à concaténer des chaînes dans Python la programmation.
Prenons un exemple de + (plus) opérateur en Python pour afficher une application du polymorphisme dans Python comme indiqué ci-dessous:
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))
Sortie :
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'exemple ci-dessus peut également être considéré comme un exemple de surcharge des opérateurs.
Polymorphisme dans les méthodes définies par l'utilisateur
Une méthode définie par l'utilisateur dans le Python Le langage de programmation sont des méthodes créées par l'utilisateur et déclarées à l'aide du mot-clé def avec le nom de la fonction.
Polymorphisme dans le Python Le langage de programmation est obtenu grâce à la surcharge et à la substitution de méthodes. Python définit des méthodes avec le mot-clé def et avec le même nom dans la classe enfant et parent.
Prenons l'exemple suivant comme indiqué ci-dessous : –
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())
Sortie :
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
Dans le code ci-dessus, il existe deux méthodes définies par l'utilisateur, périmètre et zone, définies dans les classes cercle et carré.
Comme indiqué ci-dessus, la classe cercle et la classe carré invoquent le même nom de méthode affichant la caractéristique du polymorphisme pour fournir le résultat requis.
Polymorphisme dans les fonctions
Les fonctions intégrées dans Python sont conçus et rendus compatibles pour exécuter plusieurs types de données. Dans Python, Len()
est l’une des principales fonctions intégrées.
Il fonctionne sur plusieurs types de données : liste, tuple, chaîne et dictionnaire. La fonction Len() renvoie des informations précises alignées sur ces nombreux types de données.
La figure suivante montre comment le polymorphisme peut être appliqué dans Python en ce qui concerne les fonctions intégrées : –
Le programme suivant aide à illustrer l'application du polymorphisme dans 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"}))
Sortie :
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
Dans l'exemple ci-dessus, la fonction Len() de Python effectue un polymorphisme pour les types de données chaîne, liste et dictionnaire, respectivement.
Polymorphisme et héritage
Héritage en Python peut être défini comme le concept de programmation dans lequel une classe enfant définie hérite des propriétés d'une autre classe de base présente dans Python.
Il y a deux clés Python concepts appelés remplacement de méthode et surcharge de méthode.
- En surcharge de méthode, Python fournit la fonctionnalité de créer des méthodes portant le même nom pour exécuter ou exécuter différentes fonctionnalités dans un morceau de code donné. Il permet de surcharger les méthodes et de les utiliser pour effectuer différentes tâches en termes plus simples.
- Dans Remplacement de méthode, Python remplace la valeur qui partage un nom similaire dans les classes parent et enfant.
Prenons l'exemple suivant de polymorphisme et d'héritage comme indiqué ci-dessous : –
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())
Sortie :
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
Dans le code ci-dessus, les méthodes ont le même nom défini comme méthode init et méthode Area1. Les objets de classe square et rectangle sont ensuite utilisés pour invoquer les deux méthodes pour effectuer différentes tâches et fournir la sortie de la zone du carré et du rectangle.
Polymorphisme avec les méthodes de classe
Votre Python la programmation permet aux programmeurs de réaliser le polymorphisme et la surcharge de méthodes avec des méthodes de classe. Les différentes classes de Python peut avoir des méthodes déclarées sous le même nom dans le Python code.
In Python, deux classes différentes peuvent être définies. L’une serait la classe enfant et dérive les attributs d’une autre classe définie appelée classe parent.
L'exemple suivant illustre le concept de polymorphisme avec des méthodes de classe : –
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()
Sortie :
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.
Dans le code ci-dessus, deux classes différentes nommées flipkart et amazon utilisent les mêmes noms de méthode info et init pour fournir les cotations de prix respectives du produit et illustrer davantage le concept de polymorphisme dans Python.
Différence entre la surcharge de méthode et le polymorphisme au moment de la compilation
Dans le polymorphisme au moment de la compilation, le compilateur du Python le programme résout l’appel. Le polymorphisme au moment de la compilation est réalisé grâce à une surcharge de méthodes.
Votre Python le compilateur ne résout pas les appels pendant l'exécution pour le polymorphisme. Il est également classé comme méthode de substitution dans laquelle les mêmes méthodes portent des signatures ou des propriétés similaires, mais elles font partie de classes différentes.
Résumé
- Le polymorphisme peut être défini comme une condition qui se présente sous de nombreuses formes différentes.
- Un opérateur en Python aide à effectuer des tâches mathématiques et plusieurs autres tâches de programmation.
- Une méthode définie par l'utilisateur dans le Python Le langage de programmation sont des méthodes créées par l'utilisateur et déclarées à l'aide du mot-clé def avec le nom de la fonction.
- Polymorphisme dans Python offre plusieurs qualités souhaitables, comme celle de favoriser la réutilisabilité des codes écrits pour différentes classes et méthodes.
- Une classe enfant est une classe dérivée et elle obtient ses attributs de la classe parent.
- Le polymorphisme est également obtenu grâce au remplacement des méthodes d'exécution et à la surcharge des méthodes de compilation.
- Polymorphisme dans Python est également obtenu grâce à la surcharge d'opérateur et aux méthodes de classe.