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

Scikit-image, une alternative à OpenCV pour la reconnaissance d'images

Magazine
Marque
GNU/Linux Magazine
Numéro
244
Mois de parution
janvier 2021
Domaines
Résumé

Une fois n'est pas coutume, nous allons découvrir et utiliser une alternative à OpenCV, scikit-image communément appelé skimage. Nous implémenterons la reconnaissance d'images avec la méthode des histogrammes de gradients orientés (HOG : Histogram of Oriented Gradients) associée à une machine à vecteurs de support (SVM : Support Vector Machine). Cette méthode est employée dans bien des applications telles que l'automobile, pour la détection de piétons [1].

CrossDev sous Eclipse

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

Le développement logiciel nécessite l’utilisation d’outils pour l’écriture, la compilation et le débogage de code. La prise en main de ces outils n’est pas toujours évidente, alors lorsqu’on en maîtrise un, autant l’utiliser dans le maximum de cas. Eclipse permet cela et nous allons le voir dans le cas du développement embarqué.

Programmation avec le 6502 : les sprites de la NES, ou comment coder le jeu Pac-Man

Magazine
Marque
Hackable
Numéro
36
Mois de parution
janvier 2021
Domaines
Résumé

Dans le précédent article, nous avons commencé à nous familiariser avec la partie graphique de la console NES (Nintendo Entertainment System). Aujourd’hui, nous allons réaliser un véritable jeu, ou du moins nous allons suffisamment le débuter pour qu’il commence à être intéressant.