arguments *args et **kwargs dans les fonctions
*args
l'argument spécial *args dans la définition d'une fonction en python permet de transmettre un nombre variable d'arguments à une fonction. Il est utilisé pour transmettre une liste d'arguments de longueur variable sans mot-clé.
- La syntaxe consiste à utiliser le symbole * pour prendre un nombre variable d'arguments; par convention, il est souvent utilisé avec le mot args.
- Ce que *args vous permet de faire, c'est de prendre plus d'arguments que le nombre d'arguments formels que vous avez précédemment définis. Avec *args, n'importe quel nombre d'arguments supplémentaires peut être ajouté à vos paramètres formels actuels (y compris zéro argument supplémentaire).
Par exemple: nous voulons créer une fonction de multiplication prenant un nombre quelconque d’arguments et capable de les multiplier tous ensemble. Cela peut être fait en utilisant *args. - En utilisant *, la variable que nous associons à * devient un mot éditable, ce qui signifie que vous pouvez effectuer des opérations comme itérer dessus, exécuter des fonctions d'ordre plus élevé telles que map et filter, etc.
def TEST(*args):
for elm in args:
print(elm)
TEST(2,'Mostafa','Meknes',12.3,[1,3]) 2
Mostafa
Meknes
12.3
[1,3] def Info(nom,*args):
print("votre nom est ",nom)
print('Votre prénom est ',args[0])
print('Ville ',args[1])
print('Age',args[2])
print("Année d'inscription ",args[3])
Info('ESSADDOUKI','Mostafa','Meknes',31,2019) votre nom est ESSADDOUKI
Votre prénom est Mostafa
Ville Meknes
Age 31
Année d'inscription 2019**kwargs
l'argument spécial **kwargs dans les définitions de fonctions en python permet de transmettre une liste d'arguments de longueur variable avec mots-clés.
- lorsque vous passez un argument portant un nom à la fonction, nous l'appelons un mot clé.
- On peut penser que le kwargs est un dictionnaire qui associe chaque mot clé à la valeur que nous lui transmettons. C’est pourquoi, lorsque nous parcourons les kwargs, il ne semble pas y avoir d’ordre dans lequel ils ont été ajoutés.
def Info(**kwargs):
print("votre nom est ",kwargs['nom'])
print('Votre prénom est ',kwargs['prenom'])
print('Ville ',kwargs['ville'])
print('Age',kwargs['age'])
print("Année d'inscription ",kwargs['annee'])
Info(nom='ESSADDOUKI',prenom='Mostafa',ville='Meknes',age=31,annee=2019) votre nom est ESSADDOUKI
Votre prénom est Mostafa
Ville Meknes
Age 31
Année d'inscription 2019Exemple avec *args et **kwargs
def Info(*args, **kwargs):
print("votre nom est ",args[0])
print('Votre prénom est ',args[1])
print('Ville ',kwargs['ville'])
print('Age',kwargs['age'])
print("Année d'inscription ",kwargs['annee'])
Info('ESSADDOUKI','Mostafa',ville='Meknes',age=31,annee=2019)
Partager ce cours avec tes amis :
Rédigé par
ESSADDOUKI
Mostafa
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.
