Polymorphisme Python

Le mot « polymorphisme » signifie « plusieurs formes », et en programmation, il fait référence à des méthodes/fonctions/opérateurs portant le même nom qui peuvent être exécutés sur de nombreux objets ou classes.
Polymorphisme de fonction
Un exemple de fonction Python pouvant être utilisée sur différents objets est la
len()
fonction.
Chaîne
Pour les cordes len()
renvoie le nombre de caractères :
Tuple
Pour les tuples len()
renvoie le nombre d’éléments dans le tuple :
Dictionnaire
Pour les dictionnaires len()
renvoie le nombre de paires clé/valeur dans le dictionnaire :
Exemple
thisdict = {
« marque »: « Ford »,
« modèle »: « Mustang »,
« année »: 1964
}
print(len(thisdict))
Essayez-le vous-même »
Polymorphisme de classe
Le polymorphisme est souvent utilisé dans les méthodes de classe, où nous pouvons avoir plusieurs classes avec le même nom de méthode.
Par exemple, supposons que nous ayons trois classes : Car
,
Boat
et Plane
et ils ont tous une méthode appelée move()
:
Exemple
Différentes classes avec la même méthode :
Voiture de classe :
def __init__(soi, marque, modèle):
self.brand = marque
self.model = modèle
def move(self):
print(« Conduire ! »)
Bateau de classe :
def __init__(soi, marque, modèle):
self.brand = marque
self.model = modèle
def move(self):
print(« Voile ! »)
plan de classe :
def __init__(soi, marque, modèle):
self.brand = marque
self.model = modèle
def move(self):
print(« Volez ! »)
car1 = Car(« Ford », « Mustang ») #Créer une classe de voiture
bateau1 = Bateau(« Ibiza », « Touring 20 ») #Créer une classe Bateau
avion1 = Avion(« Boeing », « 747 ») #Créer une classe Avion
pour x dans (voiture1, bateau1, avion1) :
x.move()
Essayez-le vous-même »
Regardez la boucle for à la fin. En raison du polymorphisme, nous pouvons exécuter la même méthode pour les trois classes.
Polymorphisme de classe d’héritage
Qu’en est-il des classes avec des classes enfants portant le même nom ? Peut-on y utiliser le polymorphisme ?
Oui. Si nous utilisons l’exemple ci-dessus et créons une classe parente appelée
Vehicle
et fais Car
,
Boat
, Plane
classes enfants de Vehicle
les classes enfants héritent de Vehicle
méthodes, mais peut les remplacer :
Exemple
Créez une classe appelée Vehicle
et fais Car
,
Boat
, Plane
classes enfants de
Vehicle
:
Véhicule de classe :
def __init__(soi, marque, modèle):
self.brand = marque
self.model = modèle
def move(self):
print(« Déplacez-vous! »)
voiture de classe (véhicule):
passer
bateau de classe (véhicule):
def move(self):
print(« Voile ! »)
avion de classe (véhicule):
def move(self):
print(« Volez ! »)
car1 = Car(« Ford », « Mustang ») #Créer un objet Car
bateau1 = Bateau(« Ibiza », « Touring 20 ») #Créer un objet Bateau
avion1 = Avion(« Boeing », « 747 ») #Créer un objet Avion
pour x dans (voiture1, bateau1, avion1) :
impression (x.brand)
impression(x.modèle)
x.move()
Essayez-le vous-même »
Les classes enfants héritent des propriétés et des méthodes de la classe parent.
Dans l’exemple ci-dessus, vous pouvez voir que le Car
classe i vide, mais il hérite brand
,
et
modelmove()
depuis
Vehicle
.
Le Boat
et Plane
les classes héritent également brand
, model
et move()
depuis Vehicle
mais ils remplacent tous les deux le
move()
méthode.
En raison du polymorphisme, nous pouvons exécuter la même méthode pour toutes les classes.
#Polymorphisme #Python