Arguments positionnels vs mots-clés
Article connexe:
- Fonctions
- Passer une fonction comme argument
- Astérisques en Python
Transcription :
Parlons des deux types d’arguments que vous pouvez utiliser lorsque vous appelez une fonction :les arguments positionnels et les arguments nommés (a.k.a. arguments de mots-clés).
Arguments positionnels
Lorsque vous appelez la fonction intégrée print
, vous pouvez passer un nombre quelconque d’arguments positionnels.Nous passons ici quatre arguments positionnels :
>>> print(2, 1, 3, 4)2 1 3 4
Nous appelons ces arguments positionnels parce que leur position a de l’importance.L’ordre de ces arguments est significatif : le premier argument est imprimé en premier ; le dernier est imprimé en dernier.
Arguments mots-clés (alias arguments nommés)
La fonction print
accepte également certains arguments comme arguments mots-clés.
La fonction print
accepte un argument optionnel sep
(qui prend par défaut un caractère espace).
>>> print(2, 1, 3, 4, sep=' ')2 1 3 4>>> print(2, 1, 3, 4)2 1 3 4>>> print(2, 1, 3, 4, sep='-')2-1-3-4>>> print(2, 1, 3, 4, sep=', ')2, 1, 3, 4
Cet argument sep
définit le séparateur qui doit être imprimé entre chacun des arguments positionnels donnés à print
.
Il y a aussi un argument mot-clé optionnel end
.L’argument end
est par défaut un caractère de nouvelle ligne:
>>> print(2, 1, 3, 4, sep=', ', end='\n')2, 1, 3, 4
Mais nous pouvons mettre des points d’exclamation dans l’argument end
(avant une nouvelle ligne) pour imprimer des points d’exclamation à la fin:
>>> print(2, 1, 3, 4, sep=', ', end='!!\n')2, 1, 3, 4!!
L’ordre des arguments de mots-clés n’a pas d’importance
L’ordre des arguments sep
et end
de la fonction print
n’a pas réellement d’importance.
>>> print(2, 1, 3, 4, end='!!\n', sep=', ')2, 1, 3, 4!!
L’ordre n’a pas d’importance avec ceux-ci car ce ne sont pas des arguments positionnels : ce sont des arguments nommés.
Les arguments positionnels ont des virgules entre leurs valeurs.
>>> print(2, 1, 3, 4)2 1 3 4
Les arguments mots-clés (alias. arguments nommés) ont un nom et un signe égal en plus de ces valeurs et des virgules.
>>> print(2, 1, 3, 4, sep=',', end='!\n')2,1,3,4!
Les arguments mots-clés doivent venir après tout argument positionnel.Au-delà, la position des arguments mots-clés n’a aucune importance : c’est le nom qui compte, pas la position.
Utiliser les arguments mots-clés au lieu des arguments positionnels
Les arguments mots-clés ne sont pas seulement utiles pour les fonctions qui acceptent un nombre quelconque d’arguments positionnels (comme print
).Vous pouvez passer des arguments de mots-clés à à peu près n’importe quelle fonction en Python.
Par exemple, la fonction intégrée sum
accepte un premier argument :
>>> sum()10
Mais elle accepte aussi un deuxième argument, qui vaut zéro par défaut :
>>> sum(, 0)10
Si nous changeons ce second argument en 1
, nous verrons que c’est la valeur de départ pour la sommation retournée:
>>> sum(, 1)11
Je préférerais de loin voir cette fonction appelée comme ceci:
>>> sum(, start=1)11
Nous passons un argument positionnel et un argument mot-clé.
Ce start=1
fonctionne avec sum
parce que start
est le nom de cet argument.Dans la documentation de la fonction sum
, il est dit que le deuxième argument qui est appelé start
:
>>> help(sum)Help on built-in function sum in module builtins:sum(iterable, /, start=0) Return the sum of a 'start' value (default: 0) plus an iterable of numbers When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.
Donc, lorsque vous travaillez avec des arguments nommés (alias arguments mots-clés), le nom de l’argument a réellement de l’importance!Alors que lorsque vous travaillez avec des arguments positionnels, c’est la position qui est significative.
Summary
Lorsque nous appelons une fonction en Python, nous pouvons passer deux types d’arguments différents :
- Arguments positionnels
- Arguments nommés (alias. arguments mots-clés)
Les arguments nommés peuvent parfois rendre votre code un peu plus descriptif parce que vous avez donné un nom à un objet dont l’utilisation pourrait autrement ne pas être claire simplement par sa position dans un appel de fonction.
Vous voulez voir plus de sujets Python expliqués?
Bonjour aimable visiteur du web ! 👋
Cette page fait partie de Python Morsels, un service en ligne de renforcement des compétences en Python.
La meilleure façon d’apprendre est de faire. Dans le cas de Python, cela signifie écrire du code Python. Si vous souhaitez améliorer vos compétences en Python chaque semaine, essayez Python Morsels en entrant votre email ci-dessous pour créer un compte.
Les pages de sujets Python Morsels sont gratuites et le premier mois d’exercices est également gratuit. Vous n’avez pas besoin de saisir les détails de paiement pour vous inscrire.
Vous pouvez trouver des explications sur de nombreux autres sujets Python en vous inscrivant ci-dessous.
En vous inscrivant, vous acceptez la politique de confidentialité.