Combinaison de paramètres en Python
Il est possible de passer à la fois des paramètres
nommés et positionnels à une même fonction.
Cela se fait à l'aide du symbole *,
qui indique que les paramètres spécifiés
à sa droite doivent être considérés comme nommés,
sauf si leurs valeurs par défaut ne doivent pas
être utilisées.
Créons une fonction qui affichera
tous les paramètres dans la console. La variable
data désignera un paramètre
positionnel ordinaire. Ensuite, après le symbole
*, deux variables start
et end sont définies avec des valeurs
par défaut.
Cependant, lors de l'appel de la fonction, nous rendrons ces
variables nommées :
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Résultat de l'exécution du code :
1 2 3
Si on supprime la valeur par défaut de la variable
start et qu'en même temps on ne la spécifie pas en tant que
paramètre nommé, une erreur sera affichée.
Ceci se produit parce que le symbole *
a déjà défini start comme une variable
nommée :
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # affichera une erreur
Quel sera le résultat de l'exécution du code suivant :
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Quel sera le résultat de l'exécution du code suivant :
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Quel sera le résultat de l'exécution du code suivant :
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))