Un guide complet sur la surcharge de méthodes en Python (avec exemples)

Publié: 2022-04-23

La surcharge est la capacité d'une fonction, d'une méthode ou d'un opérateur à fonctionner différemment lorsque vous lui transmettez différents paramètres. La surcharge de méthode ou la surcharge de fonction en Python ont des termes couramment utilisés. Certains des principaux avantages de la surcharge sont que vous pouvez utiliser une méthode de plusieurs manières, ce qui vous aide à garder votre code plus propre et supprime la complexité lorsque vous travaillez avec une équipe.

Table des matières

Qu'est-ce que la surcharge de méthode ?

Dans la programmation orientée objet, la surcharge de méthode est utilisée dans des scénarios où, pour un objet spécifique, une méthode particulière peut être appelée de plusieurs manières en fonction des exigences du projet.

Des exemples de surcharge de méthode en Python sont discutés en détail plus loin dans l'article.

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

Le remplacement de méthode en Python est similaire à la surcharge de méthode, sauf que le remplacement de méthode se produit entre une sous-classe et une superclasse. Il a les mêmes paramètres quant au moment où les méthodes sont appelées. Pourtant, ils se comportent différemment en raison du fait que certaines fonctionnalités sont remplacées par la superclasse.

Exemple de remplacement de méthode

classe X :

def method1(self):

print('Je suis la première fonctionnalité de la classe X')

def method2(self):

print('Je suis la deuxième caractéristique de la classe X')

classe Y(X):

def method1(self):

print('Je suis la première fonctionnalité modifiée de la classe X dans la classe Y')

def method3(self):

print('Je suis une caractéristique de la classe Y')

obj = Y()

obj.method1()

Production:

Je suis la première fonctionnalité modifiée de la classe X dans la classe Y

method1 a été remplacée par la classe Y.

Apprenez des cours de science des données en ligne sur upGrad

Surcharge de méthode en Python

Le problème avec la surcharge de méthode en Python est que Python ne la prend pas en charge par défaut. Cependant, il existe des solutions de contournement pour faire de même.

Le problème

Considérons le code suivant :

def add(a, b):

s = un + b

impression(s)

def add(a, b, c):

s = une + b + c

impression(s)

# add(8, 9) affiche une erreur

ajouter(8, 9, 2)

À première vue, le code semble bon, mais lorsque vous essayez de l'exécuter avec deux arguments, Python vous affichera une erreur car en Python, lorsque vous avez plusieurs méthodes du même nom mais un nombre différent d'arguments, seul le la dernière méthode définie peut être utilisée.

Il existe deux façons différentes de surmonter ce problème de surcharge de méthode en Python.

1 : Utiliser les mêmes méthodes diffèrent selon le type de données des arguments

Nous pouvons voir un argument pour connaître le type de données, ainsi que *args qui permet de passer un nombre variable d'arguments à une méthode en Python. Nous pouvons ensuite utiliser des instructions if pour contrôler le comportement de la méthode en fonction de l'entrée.

CODE:

def add(dt, *args):

si dt =='entier' :

s = 0

si dt =='str' :

s = "

pour x dans les arguments :

s = s + x

impression(s)

ajouter('entier', 11, 9)

add("str", "Bonjour", "Comment vas-tu?")

Production:

20

Bonjour comment vas-tu?

C'était la première solution de contournement pour implémenter la surcharge de méthode en Python.

Explorez nos cours populaires en science des données

Programme exécutif de troisième cycle en science des données de l'IIITB Programme de certificat professionnel en science des données pour la prise de décision commerciale Master of Science en science des données de l'Université de l'Arizona
Programme de certificat avancé en science des données de l'IIITB Programme de certificat professionnel en science des données et analyse commerciale de l'Université du Maryland Voir tous les cours de science des données

2 : Utilisation de Multiple Dispatch Decorator (moyen plus efficace)

Multiple Dispatch Decorator est moins une solution de contournement et fonctionne exactement comme il est censé le faire. Vous pouvez l'installer en utilisant pip3.

pip3 installer plusieurs envois

CODE:

à partir d'envois multiples envoi d'importation

@dispatch(int,int) # pour 2 arguments entiers

def add(n1,n2):

s = n1 + n2

impression(s)

@dispatch(int,int,int) # pour 3 arguments entiers

def add(n1,n2,n3):

s = n1 + n2 + n3

impression(s)

@dispatch(float,float,float) # pour les arguments flottants

def add(n1,n2,n3):

s = n1 + n2 + n3

impression(s

ajouter(5,2)

ajouter(6,1,4)

ajouter(3.4,1.2,5.6)

Production:

sept

11

10.2

Lors de l'exécution, le répartiteur crée un nouvel objet qui stocke différentes implémentations de la méthode et décide de la méthode à sélectionner en fonction du type et du nombre d'arguments passés lors de l'appel de la méthode. Cette méthode de surcharge en Python est plus efficace.

Lisez nos articles populaires sur la science des données

Cheminement de carrière en science des données : un guide de carrière complet Croissance de carrière en science des données : l'avenir du travail est là Pourquoi la science des données est-elle importante ? 8 façons dont la science des données apporte de la valeur à l'entreprise
Pertinence de la science des données pour les managers La feuille de triche ultime de la science des données que tous les scientifiques des données devraient avoir Top 6 des raisons pour lesquelles vous devriez devenir Data Scientist
Une journée dans la vie d'un data scientist : que font-ils ? Mythe brisé : la science des données n'a pas besoin de codage Business Intelligence vs Data Science : quelles sont les différences ?

conclusion

Si vous souhaitez entrer dans le domaine de la science des données, Python est une bonne première étape à franchir. Pour approfondir et approfondir le sujet, vous pouvez consulter des cours de certification en ligne avancés comme le programme exécutif en science des données par IIIT-Bangalore en association avec upGrad . Ce programme couvre les aspects importants du sujet et offre de nombreux avantages supplémentaires tels qu'une assistance professionnelle, un mentorat 1: 1, une assistance en ligne, des conférences en direct et des modules supplémentaires facultatifs pour les passionnés qui souhaitent se perfectionner davantage.

Quelle est la différence entre une fonction et une méthode en Python ?

En Python, il existe deux types de fonctions : les fonctions intégrées et les fonctions définies par l'utilisateur. print() et len() sont des exemples de fonctions intégrées. Les fonctions définies par l'utilisateur en python sont des fonctions que nous pouvons définir nous-mêmes pour effectuer une tâche spécifique plus d'une fois dans un programme typique. La méthode est comme une fonction sauf que les méthodes appartiennent à une classe et ne peuvent être appelées que sur un objet. (Syntaxe : obj.method())

Comment choisir entre Python et R ?

Python et R sont les deux principaux langages utilisés pour la science des données. Alors que ce qu'il faut utiliser dépend de plusieurs facteurs comme l'entreprise que vous visez, le type de projet, les exigences du client, etc., généralement, si vous êtes un débutant en programmation, travaillant dans un environnement d'ingénierie créant des applications à grande échelle, Python est un excellent choix. D'un autre côté, si vous avez une expérience préalable en programmation et que vous souhaitez exécuter rapidement des tâches d'analyse de données et visualiser vos données à l'aide de beaux graphiques pour prendre une meilleure décision statistiquement, R est la voie à suivre.

Combien de temps faut-il pour maîtriser la Data Science ?

A chacun son rythme d'apprentissage. Bien que, pour un débutant sans expérience préalable en programmation, il vous faudra près de 6 à 7 mois pour renforcer vos bases. Après cela, cela dépend encore une fois de combien vous pratiquez et des projets sur lesquels travailler. Si vous suivez une certification en ligne, vous devriez pouvoir la maîtriser en un an environ.