Introduction à la surcharge Python

La surcharge est le processus consistant à avoir le même nom pour plusieurs entités (méthodes, opérateurs, etc.), mais elles diffèrent par leurs attributs. La différence d'attributs peut être due à une différence dans le nombre d'attributs ou à la différence dans le type d'attributs. En d'autres termes, du point de vue de l'entité (méthodes, opérateurs, etc.), elle peut être rédigée ou expliquée comme la capacité d'une entité à se comporter différemment selon les paramètres qui lui sont transmis. En python, comme comme la plupart des autres langages de programmation de haut niveau, la surcharge python peut être réalisée de deux manières ou instances, elles sont répertoriées ci-dessous,

  • Surcharge de fonctions ou de méthodes (surcharge de fonction).
  • Surcharge des opérateurs (surcharge des opérateurs).

Surcharge de fonction en Python

La surcharge de méthode n'est pas un concept appliqué en python mais elle peut être obtenue par plusieurs techniques. Tout d'abord, le concept de surcharge de méthode peut être classé en deux concepts différents,

  • Surcharge des fonctions définies par l'utilisateur.
  • Surcharge des fonctions par défaut.

1. Surcharge des fonctions définies par l'utilisateur

La surcharge des fonctions définies par l'utilisateur peut être obtenue en python en définissant un paramètre ou une valeur d'argument sur aucun. Ainsi, si un argument est défini sur none, la fonction réagit d'une manière lorsqu'une valeur n'est pas transmise pour cet argument et d'une manière différente lorsqu'une valeur n'est pas transmise pour le même argument.

Exemple:

#!/usr/bin/env python
class Overloading_test:
def overloading_function(self, argument1 = 0, argument2 = 0 ):
if argument1 is not None or argument2 is not None:
print('Method Overloading parameter count :', (int( argument1) + int(argument2)))
else:
print( ' Method Overloading without parameters ' )
# Create instance
object1 = Overloading_test()
# Call the method with no arguments
object1.overloading_function()
# Call the method with 1 argument
object1.overloading_function(1)
# Call the method with 2 argument
object1.overloading_function(1, 1)

Production:

2. Surcharge des fonctions par défaut ou prédéfinies

La surcharge des fonctions intégrées implique de définir la fonction prédéfinie qui devrait être surchargée dans la classe python en tant que fonction spéciale. Ainsi, lorsque la fonction prédéfinie est déclarée en tant que fonction spéciale dans la classe python, l'interpréteur utilise cette fonction spéciale comme déclaration pour l'appel prédéfini. L'exemple ci-dessous explique précisément ce processus.

Exemple:

considérons la fonction len () qui est utilisée pour déterminer la longueur d'un élément pour cet exemple, l'exemple ci-dessous montre l'utilisation standard de la fonction de longueur sans impliquer une surcharge et publie l'impact correspondant.

# Using len() function without method overloading
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) print(' Collection used for List1 : ', type(Lower_Case))
print(' Collection used for list2 : ', type(Upper_Case))
print(' Total count of Alphabets in list1 : ', len(Lower_Case))
print(' Total count of Alphabets in list2 : ', len(Upper_Case))

Production:

Utilisons maintenant la surcharge de méthode pour la fonction len () dans le même extrait de code

class overloading:
def __init__(self, argument1, argument2):
self.argument1 = argument1
self.argument2 = argument2
def __len__(self):
return argument1+argument2
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) print(' Collection used for List1 : ', type(Lower_Case))
print(' Collection used for list2 : ', type(Upper_Case))
argument1 = len(Lower_Case)
argument2 = len(Upper_Case)
# Using len() function without method overloading
Object1 = overloading(argument1, argument2)
print('Overall length of both the lists : ', len(Object1))

Production:

Nous pouvons clairement remarquer qu'au lieu d'utiliser la fonctionnalité de longueur intégrée habituelle, la fonction spéciale surchargée __len __ () est utilisée, ce qui rend la sortie pour imprimer la longueur additionnée des deux listes au lieu de leur longueur individuelle.

Surcharge d'opérateur en Python

Cela implique une interprétation étendue d'un opérateur plus que son objectif d'origine. L'exemple le plus courant est l'opérateur d'addition «+» où il peut être utilisé pour l'addition habituelle et également pour joindre deux chaînes différentes.

Exemple:

# add two numbers
print(1 + 2)
# concatenate two strings
print("Hello"+"World")

Production:

Avantages de la surcharge Python

  • Augmente la réutilisabilité du code.
  • Augmente la clarté du code.
  • La complexité impliquée dans le code est considérablement réduite.

Conclusion

La surcharge joue un rôle vital dans de nombreux langages de programmation de haut niveau. Dans le cas de python, bien qu'ils ne soient pas impliqués directement, ils jouent un rôle important pour éviter l'utilisation répétitive du code.

Articles recommandés

Ceci est un guide de la surcharge Python. Nous discutons ici des fonctions définies par l'utilisateur et prédéfinies ainsi que de son opérateur et de ses avantages. Vous pouvez également consulter les articles suivants pour en savoir plus-

  1. Variables Python (4 principaux types)
  2. Surcharge vs surcharge avec des exemples
  3. Opérations sur les fichiers Python
  4. Éditeurs Python (6 meilleurs éditeurs)
  5. Exemples de fonctions intégrées Python