Leçon 9 / 10 — Chapitre 4: Décorateurs
Unpacking à l'appel : *liste et **dict
Python Intermédiaire a montré *args/**kwargs pour définir une fonction acceptant un nombre variable d'arguments. À l'appel, * et ** font l'inverse : ils déballent une liste ou un dictionnaire existant en arguments séparés.
def additionner(a, b, c):
return a + b + c
valeurs = [1, 2, 3]
print(additionner(*valeurs))
Ce code affiche 6 : *valeurs déballe la liste [1, 2, 3] en trois arguments positionnels séparés, exactement comme si on avait écrit additionner(1, 2, 3) directement — sans le *, additionner(valeurs) échouerait, car additionner attend trois arguments séparés, pas une seule liste.
** fait de même avec un dictionnaire, en le déballant en arguments nommés :
infos = {"a": 1, "b": 2, "c": 3}
print(additionner(**infos))
Ce code affiche aussi 6 : **infos déballe le dictionnaire en a=1, b=2, c=3, chaque clé devenant un nom d'argument — les clés du dictionnaire doivent correspondre exactement aux noms des paramètres attendus par la fonction.
C'est précisément ce mécanisme qu'utilise l'enveloppe d'un décorateur (fonction(*args, **kwargs), vue dans ce chapitre) pour retransmettre les arguments reçus à la fonction d'origine.
À vous de jouer : avec une fonction à trois paramètres, appelez-la une fois en déballant une liste avec *, et une fois en déballant un dictionnaire avec **.
Continuez ce module
Débloquez les leçons restantes ainsi que l'attestation finale.
9 000 XOF / 13,72 € / 14,95 $
Débloquez les 94 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.