Arguments nommés

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

Faites le point

Utiliser des arguments nommés

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)
1.
Quel est l'argument positionnel dans greeting(count=1, name="Ash", msg="Hiya") ?
  1. count=1
  2. name="Ash"
  3. msg="Hiya"
  4. Aucun
2.
Quelle est la sortie de greeting(count=2, name="Ash", msg="Hiya") ?
  1. Ash Hiya
    Ash Hiya
  2. Hiya Ash
    Hiya Ash
3.
Quel est l'argument positionnel dans greeting("Welcome", count=1, name="Anita") ?
  1. "Welcome"
  2. count=1
  3. name="Anita"
4.
Quel appel de fonction produirait une erreur ?
  1. greeting("Morning", "Morgan", count=3)
  2. greeting(count=1,"Hi", "Bea")
  3. greeting("Cheers", "Colleagues", 10)

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 ms2ms2. La gravité sur Terre est de 9,8 ms2ms2, et la gravité sur Mars est de 3,7 ms2ms2.

Faites le point

Utiliser des valeurs par défaut de paramètres

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)
5.
Quels paramètres ont des valeurs par défaut ?
  1. msg
  2. name et count
  3. tous
6.
Quel appel de fonction est correct ?
  1. greeting()
  2. greeting(name="Gina")
  3. greeting("Greetings")
7.
Quelle est la sortie de greeting(count=0, msg="Hello") ?
  1. Hello Friend
  2. rien
  3. Error

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 : 5
  • name : 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.