Remplacement de méthode en Python : qu'est-ce que c'est, comment le faire ?

Publié: 2021-09-28

Python est un langage polyvalent de haut niveau qui est un incontournable pour les passionnés de programmation informatique. Semblable à d'autres langages informatiques largement utilisés comme JAVA, C++, Golang, Ruby, etc. Python est également un langage de programmation orienté objet où le codage dépend des classes et des objets. Le concept permet aux développeurs de structurer des codes simples et réutilisables qui désignent ensuite des objets individuels. Il existe plusieurs fonctionnalités utiles offertes par les langages OOP, dont l'une est le remplacement de méthode.

Dans cet article, nous allons comprendre le concept d'héritage pour explorer le remplacement de méthode en Python. Commençons par comprendre ce qu'est une classe.

Table des matières

Qu'est-ce qu'une classe ?

La classe est une fonctionnalité ou une instance dans le paradigme de la programmation orientée objet. Il s'agit d'un modèle de codage de programme étendu au sein d'un programme. Les classes aident les programmeurs à saisir les données initiales de chaque objet (tableaux, chaînes, variables, etc.) au moment de la création. Ils nous permettent également de définir les caractéristiques de la classe et de déterminer comment ils traiteront les données ou fourniront des informations. Il existe des sous-classes ou des classes enfants sous les classes parentes ou superclasses définies dans un programme.

Qu'est-ce que l'héritage ? Quels sont ses avantages ?

L'héritage dans la programmation orientée objet est une propriété qui permet aux fonctionnalités d'une classe d'être héritées d'autres classes ou sous-classes. Cela permet d'éviter la redondance des données, de mieux compiler le programme et de limiter la portée des erreurs.

Cette capacité d'une classe à dériver ou hériter des fonctionnalités d'autres classes est appelée héritage. La classe dont les caractéristiques et les propriétés sont utilisées pour dériver une sous-classe est appelée la classe Parent.

Voici les avantages de l'héritage :

  • L'héritage permet aux utilisateurs de bien représenter les relations en temps réel.
  • Il permet de réutiliser les codes. Cela permet également aux programmeurs de fournir plus de caractéristiques à une classe.
  • Il permet la transition. Supposons que la classe Q dérive les caractéristiques de la classe W, alors les sous-classes de Q hériteraient automatiquement de la classe W.

Types d'héritage

Il existe trois types d'héritages qui sont les suivants;

1. Héritage unique

Dans l'héritage unique, une classe dérivée peut hériter des fonctionnalités d'une classe parent unique. Il permet la réutilisation des codes mais aussi l'ajout de nouvelles fonctionnalités.

2. Héritage multiple

Il s'agit de transférer les caractéristiques de plus d'une classe parente à une sous-classe. Ici, les fonctionnalités de la classe de base sont automatiquement héritées dans la sous-classe.

3. Héritage à plusieurs niveaux

Lorsque les caractéristiques de la classe parente et de la sous-classe sont ensuite héritées dans une autre classe dérivée, on parle d'héritage multiniveau.

Qu'est-ce que le remplacement de méthode en Python ?

Le remplacement de méthode est une fonctionnalité des langages de programmation orientés objet où la sous-classe ou la classe enfant peut fournir au programme des caractéristiques spécifiques ou un processus d'implémentation spécifique des données fournies qui sont déjà définies dans la classe ou la superclasse parent.

Lorsque les mêmes retours, paramètres ou nom sont entrés dans la sous-classe comme dans la classe parent, la méthode d'implémentation dans la sous-classe remplace la méthode mentionnée dans la classe parent. C'est ce qu'on appelle le remplacement de méthode.

Son exécution dépend des données utilisées pour invoquer la méthode et non des données de référence déjà fournies dans la classe parent. Si un objet de la classe parent est utilisé pour invoquer la méthode d'implémentation spécifique à un programme, alors la version de la méthode telle qu'écrite dans la classe parent est invoquée. En revanche, si un objet de la sous-classe est utilisé pour invoquer la méthode, l'exécution se fera selon les fonctionnalités mentionnées dans la sous-classe. Si vous êtes débutant et souhaitez acquérir une expertise en science des données, consultez nos cours de science des données.

Caractéristiques du remplacement de méthode

Cette section va explorer les principales fonctionnalités offertes par le remplacement de méthode en python :

  • Le remplacement de méthode permet l'utilisation de fonctions et de méthodes en Python qui ont le même nom ou la même signature.
  • La surcharge de méthode est un exemple de polymorphisme d'exécution.
  • Dans le remplacement de méthode, l'utilisation de la fonctionnalité d'héritage est toujours requise.
  • La surcharge de méthode est effectuée entre les classes mères et les classes filles.
  • Il est utilisé pour modifier le comportement et l'implémentation des méthodes existantes.
  • Il y a toujours besoin d'un minimum de deux classes pour le remplacement de méthode.

Comprendre le remplacement de méthode : héritage à plusieurs et à plusieurs niveaux

Les héritages multiples et multiniveaux sont deux types d'héritages proposés par la plupart des langages de programmation orientés objet. Dans cette section, nous verrons comment le remplacement de méthode est utilisé dans divers héritages multiniveaux :

1. Héritage multiple

Dans ce type d'héritage de classe ou d'objet, une sous-classe hérite des fonctionnalités et des caractéristiques de plusieurs classes ou bases parentes. Par exemple, il existe trois classes parentes différentes - class.1, class.2, class.3, et il y a class.a, qui est la classe enfant exécutant des fonctionnalités d'héritages multiples. Le class.a contiendra les fonctionnalités héritées des trois classes de base.

Voici un exemple de programme :

# Définir la classe parent 1

classe Parent1() :

# Méthode d'affichage des parents

def show(self):

print("Inside Parent1")

# Définir la classe parent 2

classe Parent2() :

# Méthode d'affichage des parents

def display(self):

print("Inside Parent2")

# Définir la classe enfant

classe Enfant (Parent1, Parent2):

# Méthode de spectacle de l'enfant

def show(self):

print(“Enfant intérieur”)

# Code conducteur

obj = Enfant()

obj.show()

obj.affichage()

Sortir:

Enfant à l'intérieur

À l'intérieur de Parent2

2. Héritage à plusieurs niveaux

Dans ce type d'héritage de classe ou d'objet, une sous-classe est directement héritée de la classe de base, portant déjà les caractéristiques de la classe mère. C'est fondamentalement comme la relation père-fils ou grand-père-petit-enfant. Les caractéristiques de la sous-classe sont propres à sa classe parent. Par exemple, il existe une classe parente nommée class.Q et une sous-classe est formée dans l'extension de class.Q. Ici, la sous-classe peut servir de classe de base pour une autre sous-classe.

Voici un exemple de programme :

classe Parent() :

def display(self):

print("Parent intérieur")

classe Enfant (Parent):

# Méthode de spectacle de l'enfant

def show(self):

print(“Enfant intérieur”)

class GrandChild(Enfant):

# Méthode de spectacle de l'enfant

def show(self):

print(“Inside GrandChild”)

#Code conducteur

g = GrandEnfant()

g.show()

g.affichage()

Sortie :

À l'intérieur de GrandChild

Parent intérieur

Invocation de méthodes de classe de base dans des méthodes remplacées

Il existe une méthode dans laquelle les méthodes de classe parent peuvent être invoquées entre les méthodes remplacées. Cela peut être fait en utilisant les processus suivants :

  • Utilisation du nom de classe

l'écriture de la méthode du nom de classe dans la méthode remplacée de la sous-classe peut invoquer la méthode fournie dans la classe parent.

  • Utilisation de la fonction super()

le langage de programmation de Python propose une fonction appelée super(), qui est utilisée pour faire référence à la classe parent en particulier.

Conclusion

Le remplacement de méthode est l'une des fonctionnalités les plus cruciales du langage Python. La propriété est largement utilisée dans la programmation d'applications de science des données et permet une analyse de données compacte et efficace. Le remplacement de méthode facilite également la compilation des codes et la revérification. Il y a quelques conditions préalables à l'utilisation de cette fonctionnalité : comprendre le concept de base des classes et de l'héritage.

Si vous souhaitez en savoir plus sur le remplacement de méthode en Python, nous vous suggérons de suivre le Master of Science in Data Science de 18 mois . upGrad propose ce cours de l'IIIT Bangalore et de l'Université John Moore de Liverpool. Le cours vous enseigne des compétences telles que les statistiques, l'analyse prédictive à l'aide de Python, l'apprentissage automatique, la visualisation de données, l'analyse de données volumineuses, etc. Les étudiants ayant une solide connaissance des concepts de Python sont bien placés pour aborder des sujets tels que l'apprentissage en profondeur, le traitement du langage naturel, l'analyse commerciale et l'ingénierie des données.

Contactez-nous dès aujourd'hui pour commencer votre parcours d'apprentissage!

Différenciez le dépassement et la surcharge.

La principale différence entre le remplacement et la surcharge est que le remplacement a lieu entre les mêmes méthodes ou les mêmes signatures, tandis que la surcharge se produit entre les mêmes méthodes de classe.

1. La surcharge de méthode illustre le polymorphisme au moment de la compilation, tandis que la substitution de méthode illustre le polymorphisme à l'exécution.
2. La surcharge de méthode ne peut pas être exécutée en Python, alors que l'exécution de la surcharge de méthode est possible sous certaines conditions.

Quelles sont les fonctionnalités du remplacement de méthode ?

Voici les fonctionnalités du remplacement de méthode :

1. Il illustre le polymorphisme d'exécution.
2. Il établit un lien entre la classe parent et la classe enfant.
3. Puisqu'il connecte au moins une classe, nous devons utiliser la fonctionnalité d'héritage.
4. Le remplacement de méthode vous aide à utiliser un seul nom pour plusieurs fonctions.

Nous utilisons le remplacement de méthode pour implémenter la méthode de la classe parent dans la classe dérivée.

Quels sont les différents types de successions ? Est-il possible de remplacer les méthodes privées en Python ?

Principalement, la redéfinition de méthode utilise des héritages multiniveaux et multiples.

Dans l'héritage multiniveau, la sous-classe est héritée d'une classe de base composée des caractéristiques de la classe parent. Mais dans le cas d'un héritage multiple, une sous-classe présente les caractéristiques de plusieurs classes ou bases parentes.

La substitution de méthode privée ne peut pas se produire en Java, mais c'est faisable en Python en utilisant un processus connu sous le nom de "mangling de noms".