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...

Intégration des alertes de Nagios dans Grafana

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Vous avez succombé à l’esthétique soignée des tableaux de bord de Grafana, mais vous ne pouvez pas vous passer de l’écran d’alertes du vénérable Nagios ! Alors, est-il possible de faire cohabiter ces deux produits ? Avec un peu de code Python, cela devrait être possible !

Analyser un système avec SystemTap

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

SystemTap est un outil d’analyse et de débogage de Linux. En instrumentant des points précis du système d’exploitation, il permet d’afficher des traces, de faire des mesures, ou de modifier le comportement d’un système existant, sans le recompiler, et même sans le redémarrer.

Flutter : applications mobiles, web et desktop

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Flutter est un framework permettant de développer des applications natives pour Linux, Windows, macOS, Android, iOS et le Web à partir du même code source. Un moteur graphique OpenGL ultra performant et la compilation native en ARM, x86-64 ainsi que WebAssembly, associés à un cycle de développement agile et hyper intuitif, en font la solution ultime pour les créateurs d’applications. L’essayer, c’est l’adopter !