APPLY |
Appliquer |
---|---|
Python Version 1 à 2.7 |
Syntaxe
apply(function, args[, keywords]) |
Paramètres
Nom | Description |
---|---|
function | Ce paramètre permet d'indiquer le nom de la fonction. |
args | Ce paramètre permet d'indiquer les paramètres de la fonction. |
keywords | Ce paramètre permet d'indiquer les mots clefs associé à la fonction. |
Description
Cette fonction permet d'effectuer une opération d'appel de fonction sur un objet appelable.
Algorithme
MODULE APPLY(fonction, args=None, kwargs=None) SI args est None ALORS args ← liste vide FIN SI SI kwargs est None ALORS kwargs ← dictionnaire vide FIN SI RETOURNE fonction(↑args, ↑↑kwargs) |
Remarques
- ATTENTION ! Cette fonction a été retiré du langage de programmation Python à partir de la version 3.0 de Python.
- La fonction apply() était utilisée dans les anciennes versions de Python (de la version 1.0 jusqu'à 2.7). Elle a été supprimée dans Python 3, car son utilité a été remplacée par une syntaxe plus naturelle utilisant les opérateurs de décomposition * et **. Cette suppression reflète l'évolution du langage vers plus de clarté et de lisibilité.
- Le premier paramètre, function, représente une fonction appelable. Cela signifie qu'on peut lui passer n'importe quelle fonction Python - qu'elle soit définie par l'utilisateur ou issue d'une bibliothèque - tant qu'elle peut être appelée. Par exemple, apply(print, ("Bonjour",)) était une manière valide d'utiliser print avec un argument.
- Le second paramètre, args, est un tuple contenant les paramètres positionnels que la fonction recevra. Il est crucial que args soit bien un tuple, sinon Python lèvera une exception. Par exemple, apply(sum, ([1, 2, 3],)) applique correctement la fonction sum à une liste de trois éléments.
- Le troisième paramètre, optionnel, keywords, est un dictionnaire représentant les arguments nommés (keyword arguments) à passer à la fonction. Par exemple, dans apply(ma_fonction, (10,), {'debug': True}), la fonction ma_fonction recevra 10 comme argument positionnel, et debug=True comme argument nommé.
- La fonction apply() permettait à l'époque d'écrire du code très dynamique, notamment lorsqu'on voulait appeler des fonctions dont les paramètres étaient entreposés dans des structures de données (comme des listes ou des dictionnaires). C'était utile pour la métaprogrammation ou les cas d'utilisation générique.
- Aujourd'hui, l'équivalent moderne de apply(function, args, keywords) est simplement function(*args, **keywords). Cette forme est plus concise, plus flexible et surtout compatible avec Python 3. Cela fait de apply() une relique pédagogique utile pour comprendre l'histoire du langage, mais à ne pas utiliser dans du code moderne.
- Une des raisons de la dépréciation de apply() était son manque de lisibilité et la duplication de fonctionnalités existantes. La nouvelle syntaxe avec * et ** est non seulement plus lisible mais aussi plus expressive. Elle permet de voir immédiatement qu'on déplie des arguments positionnels ou nommés.
- Même si apply() est obsolète, la compréhension de son fonctionnement aide à mieux comprendre des concepts fondamentaux de Python comme les fonctions de haut niveau, les arguments variables, et le dépliage des paramètres. C'est donc un bon point de départ pour les personnes qui étudient la programmation fonctionnelle ou l'histoire du langage.
Dernière mise à jour : Mercredi, le 14 septembre 2016