Polymorphisme en Python avec 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. Il s'agit d'un concept de programmation Python dans lequel un objet défini en 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 en Python.

Polymorphisme chez les opérateurs

Un opérateur en Python aide à effectuer des tâches mathématiques et plusieurs autres tâches de programmation. Par exemple, l'opérateur « + » aide à effectuer l'addition entre deux types entiers en Python, et de la même manière, le même opérateur aide à concaténer des chaînes dans la programmation Python.

Prenons un exemple de + (plus) opérateur en Python pour afficher une application du polymorphisme en Python comme indiqué ci-dessous :

Code Python :

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 langage de programmation Python est une méthode que l'utilisateur crée et elle est déclarée à l'aide du mot-clé def avec le nom de la fonction.

Le polymorphisme dans le langage de programmation Python est obtenu grâce à la surcharge et au remplacement 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 la suitewing exemple comme indiqué ci-dessous : –

Code Python :

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 à Python sont conçues et rendues compatibles pour exécuter plusieurs types de données. En 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.

Le following la figure montre comment le polymorphisme peut être appliqué en Python en relation avec les fonctions intégrées : –

Polymorphisme dans les fonctions

Following Le programme aide à illustrer l’application du polymorphisme en Python : –

Code Python :

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

Polymorphisme dans les fonctions

Dans l'exemple ci-dessus, la fonction Len () de Python effectue respectivement un polymorphisme pour les types de données chaîne, liste et dictionnaire.

Polymorphisme et héritage

L'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 en Python.

Il existe deux concepts clés de Python appelés remplacement de méthode et surcharge de méthode.

  • Dans la surcharge de méthodes, Python offre la possibilité 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 le remplacement de méthode, Python remplace la valeur shares un nom similaire dans les classes parents et enfants.

Prenons la suitewing exemple de polymorphisme et d'héritage comme indiqué ci-dessous : –

Code Python :

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

La programmation Python 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 peuvent avoir des méthodes déclarées sous le même nom dans le code Python.

En 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.

Le following Un exemple illustre le concept de polymorphisme avec des méthodes de classe : –

Code Python :

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 utilisez les mêmes noms de méthode info et init pour fournir des devis respectifs du produit et illustrer davantage le concept de polymorphisme en 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 programme Python résout l'appel. Le polymorphisme au moment de la compilation est réalisé grâce à une surcharge de méthodes.

Le compilateur Python ne résout pas les appels lors de 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 langage de programmation Python est une méthode que l'utilisateur crée et elle est déclarée à l'aide du mot-clé def avec le nom de la fonction.
  • Le polymorphisme en Python offre plusieurs qualités souhaitables, comme promoteste 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.
  • Le polymorphisme en Python est également obtenu grâce à la surcharge d'opérateurs et aux méthodes de classe.