*args et **kwargs en Python
En Python, nous pouvons passer un nombre variable d’arguments à une fonction en utilisant:
- *args (Arguments non liés aux mots clés)
- **kwargs (Arguments liés aux mots clés)
Nous utilisons *args et **kwargs comme argument lorsque nous ne sommes pas certains du nombre d’arguments à transmettre dans les fonctions.
Utilisation de *args
*args et **kwargs sont principalement utilisés dans les définitions de fonctions. *args et **kwargs vous permettent de passer un nombre variable d’arguments à une fonction. Ici, variable signifie, c’est que vous ne savez pas d’avance combien d’arguments peuvent être transmis à votre fonction par l’utilisateur. Dans ce cas, vous utilisez ces deux mots-clés. *args est utilisé pour envoyer une liste d’arguments de longueur variable sans mot-clé à la fonction. Voici un exemple pour vous aider à avoir une idée claire:
# *args pour un nombre variable d'arguments def display(*argv): for arg in argv: print (arg) display('Hello', 'Welcome', 'to', 'WayToLearnX')
Cela produit le résultat suivant:
Hello Welcome to WayToLearnX
Utilisation de **kwargs
**kwargs vous permet de transmettre une liste d’arguments de longueur variable avec des mots-clés à une fonction. Vous devez utiliser **kwargs si vous souhaitez gérer des arguments nommés dans une fonction. Voici un exemple pour vous aider:
def display(**kwargs): for key, value in kwargs.items(): print ("%s == %s" %(key, value)) display(id=1, name='Alex', age=23)
Cela produit le résultat suivant:
id == 1 name == Alex age == 23
Conclusion
- *args et **kwargs sont des mots clés spéciaux qui permettent à la fonction de prendre un argument de longueur variable.
- *args et **kwargs rendent la fonction flexible.
- *args transmet un nombre variable d’arguments sans mot-clé et sur lequel les opérations d’une liste peut être effectuée.
- ** kwargs transmet un nombre variable d’arguments avec des mot-clés et sur lequel les opérations d’un dictionnaire peut être effectué.