Langage Python

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 Mostafa Sedoki
Computer science teacher and the founder of the e-learning platform "developpement-informatique.com", my mission is to provide high-quality courses for free to all computer science students and teachers

Cours Similaires :