4.2. Arguments optionnels et nommés
Python permet aux arguments de
fonction d’avoir une valeur par défaut, si la fonction est appelée
sans l’argument il a la valeur par défaut. De plus, les arguments
peuvent être donnés dans n’importe quel ordre en utilisant les
arguments nommés. Les procédures stockées de Transact/SQL sous SQL Server
peuvent faire la même chose, si vous êtes un as des scripts sous SQL Server, vous pouvez survoler cette partie.
spacing et collapse sont
optionnels car ils ont des valeurs par défaut définies.
object est obligatoire car il n’a pas de valeur par
défaut. Si info est appelé avec un seul argument,
spacing prend pour valeur 10 et
collapse la valeur 1. Si
info est appelé avec deux arguments,
collapse prend encore pour valeur
1.
Imaginez que vous vouliez spécifier une valeur pour
collapse mais garder la valeur par défaut pour
spacing. Dans la plupart des langages, vous ne pouvez
pas le faire, vous auriez à spécifier les trois arguments. Mais en
Python, les arguments peuvent être spécifiés
par leur nom, dans n’importe quel ordre.
Exemple 4.4. Appels de info autorisés
info(odbchelper)
info(odbchelper, 12)
info(odbchelper, collapse=0)
info(spacing=15, object=odbchelper) 
|
Avec un seul argument, spacing prend pour
valeur 10 et collapse
1.
|
|
Avec deux arguments, collapse prend pour
valeur 1.
|
|
Ici, vous nommez l’argument collapse
explicitement et spécifiez sa valeur. spacing
prend la valeur par défaut 10.
|
|
Les arguments obligatoires (comme object,
qui n’a pas de valeurs par défaut) peuvent aussi être nommés et
les arguments nommés peuvent apparaître dans n’importe quel
ordre.
|
Cela a l’air confus jusqu’à que vous réalisiez que les arguments
sont tout simplement un dictionnaire. La manière «normale»
d’appeler les fonctions sans le nom des arguments est en fait un
raccourci dans lequel Python fait
correspondre les valeurs avec le nom des arguments dans l’ordre dans
lequel ils sont spécifiés par la déclaration de fonction. Dans la
plupart des cas, vous appellerez le fonctions de la manière
«normale», mais vous aurez toujours cette souplesse pour
les autres cas.
 |
| La seule chose que vous avez à faire pour appeler une fonction
est de spécifier une valeur (d’une manière ou d’une autre) pour chaque
argument obligatoire, la manière et l’ordre dans lequel vous le faites
ne dépendent que de vous.
|