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 2019
Exemple 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