La surcharge ou overloading en Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
112
Mois de parution
janvier 2021
Domaines


Résumé

On vous l’a dit et répété : Python est un langage à typage dynamique ! Ah... donc, on ne peut pas réaliser de surcharge de fonctions ou de méthodes ? Pour les débutants, on dira non, pour les autres, on peut toujours s’arranger avec Python...


Une des bases de la programmation orientée objet (POO) est la surcharge, plus communément connue sous son nom anglais d’overloading. Le principe est simple : il peut y avoir plusieurs méthodes portant le même nom, mais dont la signature est différente. En fonction du type des paramètres transmis à la méthode, ce sera la méthode qui prend en charge ces paramètres qui sera exécutée... et c’est là que le bât blesse en Python, puisque le typage dynamique permet d’écrire des choses de ce type :

>>> def add(val1, val2):
...     return val1 + val2
...
>>> add(2, 3)
5
>>> add(5.45, 6.78)
12.23
>>> add('Hello ', 'world !')
'Hello world !'
>>> add(2+1j, 4-3j)
(6-2j)

Si nous voulons effectuer des tâches spécifiques en fonction du type de val1 et val2, nous sommes coincés !

Qu’à cela ne tienne, nous allons voir dans cet article comment utiliser le module functools pour réaliser de la surcharge en Python !

1. La surcharge de...

Cet article est réservé aux abonnés. Il vous reste 90% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Introduction à l’écriture de tests avec Erlang/OTP

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Les tests ont toujours été un facteur non négligeable de réussite lors de la conception d’un projet de développement. Ces différentes procédures, accompagnant généralement le code source, permettent d’augmenter grandement la qualité d’une application, qu’elle soit libre ou fermée. Même s’il est vrai qu’un programme ne peut-être testé dans son intégralité, les tests mis en place permettront de livrer à l’utilisateur final un système stable ainsi qu’une garantie de fonctionnement. Bien entendu, Erlang/OTP n’est pas en reste, et fournit aux développeurs tout un arsenal d’outils agissant sur l’excellence du produit.

Identité multiple avec le namespace user

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Après deux articles [1] [2] assez fastidieux, mais néanmoins instructifs sur le fonctionnement interne des namespaces au sein du noyau de Linux, nous revenons en espace utilisateur pour une revue détaillée de chaque namespace. Cet opus se consacre au namespace user.

Créez des présentations animées avec Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Expliquer des faits scientifiques (des formules mathématiques, des phénomènes de physique, etc.) ou du code n’est pas toujours simple. Le recours à des animations peut apporter beaucoup plus de clarté et faciliter la compréhension de votre auditoire. Et ce n’est pas si compliqué à créer...

Traitement de tâches de fond en Ruby

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Beaucoup de projets web utilisent des frameworks qui font grand usage de Redis pour gérer les tâches de fond. Pourtant RabbitMQ ou Kafka sont des options qui peuvent donner un regard tout à fait différent sur l’application en elle-même. Tour d’horizon des trois approches.