kwargs Python

Python *args et **kwargs vous permettent de passer un nombre variable d’arguments dans une fonction. *Les arguments args n’ont pas de mots-clés alors que les **arguments kwargs sont chacun associés à un mot-clé.

Traditionnellement, lorsque vous travaillez avec des fonctions en Python, vous devez indiquer directement les arguments de la fonction acceptera.

Dans certains cas, o√π vous voudrez peut-être accepter plus d’arguments à l’avenir, il n’est pas pratique d’indiquer directement tous les paramètres que vous souhaitez utiliser avec une fonction.

C’est là qu’interviennent les mots-clés Python *args et **kwargs. Ces mots-clés permettent de passer un nombre indéfini d’arguments à une fonction.

Ce tutoriel abordera, en se référant à des exemples, les bases des mots-clés *args et **kwargs en Python, et comment ils se comparent.

Python *args

La méthode Python *args représente un nombre varié d’arguments. Il vous permet de transmettre des arguments à une fonction lorsque vous n’êtes pas s√ªr du nombre d’arguments que vous souhaitez transmettre.

Le terme "args‚" est un espace réservé. Dans votre fonction, vous pouvez remplacer le nom de "args‚" avec n’importe quelle valeur. Vous pouvez utiliser des "chiffres" pour représenter une liste de nombres ou "étudiant" représenter un étudiant‚Äô détails.

La syntaxe de la méthode *args est la suivante :

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Cette fonction accepte un nombre variable d’arguments. Ainsi, nous pourrions passer zéro argument, un argument, deux arguments, et ainsi de suite. Notre fonction affiche sur la console chaque argument que nous passons dans notre fonction.

La valeur après l’astérisque, "nombres‚" représente nos arguments.

Le mot-clé args est utile si vous effectuez des opérations mathématiques, par exemple si vous souhaitez additionner un nombre variable de nombres.

*exemple Python args

√âcrivons un programme qui additionne les valeurs de plusieurs arguments. Cela nous permet d’effectuer une somme mathématique sans avoir à utiliser un signe plus pour chaque valeur que nous voulons ajouter.

Voici un exemple de fonction capable d’additionner plusieurs arguments :

Notre code renvoie :

Tout d’abord, nous déclarons une fonction Python appelée addNumbers(), qui contient le code de notre programme d’ajout de nombres. Cette fonction a un argument spécifié : *args.

Le mot-clé *args est utilisé pour représenter un nombre variable d’arguments potentiels qui pourraient être transmis à la fonction.

Ensuite, nous déclarons une variable Python appelée total qui garde une trace du nombre total que nous ajoutons. Initialement, cette variable est définie sur 0.

Nous utilisons une boucle for pour parcourir chaque argument du mot-clé args et nous ajoutons chaque nombre à notre total. Notez que lorsque vous faites référence aux arguments stockés dans *args, vous utilisez le "args‚" mot-clé. Ensuite, nous imprimons le nombre total que notre programme a calculé.

Dans notre programme principal, nous appelons deux fois la méthode addNumbers(). Lorsque nous appelons la fonction pour la première fois, nous spécifions trois nombres que nous voulons que notre fonction additionne. La prochaine fois que nous appelons la fonction, nous spécifions quatre nombres que nous voulons que notre fonction additionne.

Comme nous avons utilisé *args, nous pouvons envoyer un nombre illimité d’arguments à notre fonction. Notre programme fonctionne quel que soit le nombre d’arguments que nous passons.

Python **kwargs

Le mot-clé **kwargs représente un nombre arbitraire d’arguments qui sont passés à une fonction. **les mots-clés kwargs sont stockés dans un dictionnaire. Vous pouvez accéder à chaque élément en vous référant au mot-clé que vous avez associé à un argument lorsque vous avez passé l’argument.

La syntaxe pour **kwargs est :

Ce code nous permet de passer un nombre variable d’arguments de mots clés dans notre fonction. Le nom **kwargs n’est qu’un substitut. Vous pouvez remplacer "kwargs‚" avec n’importe quel terme que vous souhaitez.

Nous utilisons le nom après l’astérisque comme étiquette pour nos arguments de mot-clé. Dans ce cas, notre label est "record". Les valeurs d’une méthode **kwargs sont stockées dans des paires clé-valeur. C’est pourquoi nous devons utiliser items() pour parcourir tous les arguments que nous avons passés à notre fonction.

**kwargs Exemple Python

Parcourons un exemple de base d’une fonction utilisant **kwargs pour illustrer le fonctionnement du mot-clé.

Supposons que nous construisions un programme qui affiche des informations sur la commande d’un client dans un café. Nous voulons transmettre les informations de commande du client à une fonction, qui imprimera ensuite les données sur la console. créer une fonction :

"Python.Engineering est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à suivre un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Notre code renvoie :

Tout d’abord, nous déclarons une fonction appelée printOrder() qui utilise le mot-clé **kwargs pour accepter un nombre variable d’arguments. Cette fonction affiche la valeur de "kwargs" (qui stocke tous les arguments de mot-clé passés à notre fonction).

Ensuite, nous appelons notre fonction et passons trois arguments : café, prix et taille. Lorsque nous passons ces valeurs, elles sont envoyées à notre fonction en tant que dictionnaire.

Notre code a renvoyé un dictionnaire Python avec trois arguments que nous avons spécifiés , à côté de leurs valeurs. Si nous le voulions, nous aurions pu passer encore plus ou même moins d’arguments, car **kwargs représente un nombre variable d’arguments.

Parce que nos kwargs sont stockés dans un dictionnaire, nous pouvons accéder à leurs valeurs individuellement comme nous le ferions avec n’importe quel dictionnaire Python.

Améliorer notre code

Maintenant, supposons nous voulions imprimer les détails de la commande de café de manière plus structurée. Nous pourrions le faire en utilisant ce code :

Notre code renvoie :< /p>

Décomposons notre code. Tout d’abord, nous déclarons une fonction appelée printOrder() qui utilise le mot-clé **kwargs pour accepter les mots-clés. Ensuite, nous avons créé une boucle for qui parcourt chaque élément de notre dictionnaire kwargs.

Nous utilisons la méthode Python Dictionary items() pour accéder à chaque clé et valeur de notre dictionnaire.

Cette boucle for imprime le nom de chaque clé de notre dictionnaire (café, prix et taille). Ensuite, le code s’imprime " est égal à". Enfin, notre code imprime la valeur qui correspond à chaque touche ("Moka", 2,90 et "Large", respectivement).

Si nous voulions transmettre quatre mots-clés à notre programme, ou deux, nous le pourrions, car **kwargs prend en charge les listes d’arguments de longueur variable avec mots-clés, comme *args.

Python *args vs **kwargs

Les arguments envoyés à une fonction utilisant **kwargs sont stockés dans une structure de dictionnaire. *args envoie une liste d’arguments à une fonction.

En outre, envoyez des arguments à l’aide de **kwargs, vous devez affecter des mots-clés à chacune des valeurs que vous souhaitez envoyer à votre fonction. Vous n’avez pas besoin de spécifier de mots-clés lorsque vous utilisez *args.

Un seul astérisque indique *args alors que **kwargs utilise un double astérisque. Il s’agit d’une distinction importante car les deux "args" et "kwargs" sont des espaces réservés. Vous pouvez remplacer ces mots par n’importe quelle valeur.

Comment ordonner les arguments Python

Les arguments dans une fonction Python tion doit apparaaître dans un ordre précis. Cet ordre est le suivant :

  • Les arguments formels
  • *args
  • Les arguments des mots-clés
  • **kwargs

Donc, si vous travaillez à la fois avec *args et **kwargs, vous utiliserez ce code :

De plus, si vous souhaitez spécifier des valeurs par défaut pour certains arguments qui peuvent survenir, vous pouvez utiliser ceci code :

Cette fonction s’attend à recevoir un argument appelé café, et la valeur par défaut de tout argument appelé coffee_order sera Espresso< /em>. Cependant, vous pouvez spécifier autant d’arguments que vous le souhaitez avec cette fonction, car *args et **kwargs sont utilisés.



Conclusion

Les mots clés *args et **kwargs permettent de passer un nombre variable d’arguments à une fonction Python. Le mot-clé *args envoie une liste de valeurs à une fonction. **kwargs envoie un dictionnaire avec des valeurs associées à des mots-clés à une fonction.

Ces deux mots-clés introduisent plus de flexibilité dans votre code. En effet, vous n’avez pas besoin de spécifier un nombre spécifique d’arguments à l’avance lors de l’écriture d’une fonction.

Pour découvrir les meilleurs cours et ressources d’apprentissage Python, consultez notre Guide d’apprentissage de Python.