6.6 Arguments nommés
Objectifs d'apprentissage
À la fin de cette section, vous devriez être capable de
- Décrire la différence entre les arguments positionnels et les arguments nommés.
- Créer des fonctions qui utilisent des arguments positionnels, des arguments nommés et des valeurs de paramètres par défaut.
Arguments nommés
Jusqu'à présent, les fonctions ont été appelées à l'aide d'arguments positionnels (positional arguments), qui sont des arguments affectés aux paramètres dans l'ordre. Python autorise également les arguments nommés (keyword arguments), qui sont des arguments qui utilisent les noms des paramètres pour affecter les valeurs plutôt que leur ordre. Lors de l'association d'arguments positionnels et nommés, les arguments positionnels doivent impérativement être placés en premier dans l'ordre approprié, avant tout argument nommé.
Concepts en pratique
Utiliser des arguments nommés et positionnels
Considérez la fonction suivante :
def greeting(msg, name, count):
i = 0
for i in range(0, count):
print(msg, name)
Valeurs par défaut des paramètres
Les fonctions peuvent définir des valeurs par défaut pour les paramètres à utiliser si aucun argument positionnel ou nommé n'est fourni pour ce paramètre. Ex. : def season(m, d, hemi="N"): définit une valeur par défaut de "N" pour le paramètre hemi. Remarque : les valeurs par défaut des paramètres ne sont définies qu'une seule fois pour être utilisées par la fonction ; les objets mutables (tels que les listes) ne doivent donc pas être utilisés comme valeurs par défaut.
L'exemple de physique ci-dessous calcule le poids sous forme de force en newtons à partir d'une masse en kilogrammes et d'une accélération en . La gravité sur Terre est de 9,8 , et la gravité sur Mars est de 3,7 .
Concepts en pratique
Utiliser des valeurs par défaut de paramètres
Considérez la version mise à jour suivante de greeting() :
def greeting(msg, name="Friend", count=1):
i = 0
for i in range(0, count):
print(msg, name)
Recommandations de la PEP 8 : espacement
Le guide de style PEP 8 recommande de ne pas insérer d'espaces autour du signe = lors de la spécification d'arguments nommés et de valeurs par défaut de paramètres.
À vous d'essayer
Dons en direct
Écrivez une fonction, donate(), qui permet à un spectateur en ligne d'envoyer un don à un streamer. donate() possède trois paramètres :
amount: montant à donner, valeur par défaut : 5name: nom du donateur, valeur par défaut : « Anonymous »msg: message du donateur, valeur par défaut : « »
Étant donné :
donate(10, "gg")
La sortie est :
Anonymous donated 10 credits: gg
Écrivez des appels de fonction qui utilisent les valeurs par défaut ainsi que des arguments positionnels et nommés.