Le but de * et ** en Python
-
La définition de
*
en Python -
La définition de
**
en Python -
Les utilisations de
*
et**
dans les appels de fonction en Python
Cet article explique le but de *
et **
en Python.
En Python, on utilise l’astérisque simple (*
) et le double astérisque(**
) pour signifier un nombre variable d’arguments.
Nous pouvons passer n’importe quel nombre d’arguments dans une fonction Python de l’une des manières suivantes.
- Arguments positionnels(
*
) - Arguments de mots clés (
**
)
La définition de *
en Python
Utilisez le symbole *
en Python pour autoriser un nombre variable d’arguments/paramètres positionnels pour la fonction.
Suivez l’exemple ci-dessous.
def function_singleasterix(*someargs):
for i in someargs:
print(i)
Maintenant, le code du pilote, avec liste
ou tuple
est le suivant.
listdata = ["Alex", "Tom", "John", "Alice"]
function_singleasterix(listdata)
Production:
['Alex', 'Tom', 'John', 'Alice']
Utilisez des arguments de position uniquement si vous ne voulez pas que les utilisateurs connaissent le nom des paramètres.
Par exemple, il est conseillé d’utiliser des variables de position uniquement dans les API - cela évite la rupture en cas de modification de l’API si le nom du paramètre est modifié.
La définition de **
en Python
Utilisez le symbole **
en Python pour autoriser un nombre variable d’arguments/paramètres de mot-clé pour la fonction. Notez que l’argument après doit être un élément de mappage (paire clé-valeur de dictionnaire), pas un tuple ou une liste.
Suivez l’exemple de code ci-dessous.
def function_doubleasterix(**keywordargs):
print("The keys in the kwargs dicionary are -", keywordargs.keys())
print("The values in the kwargs dicionary are -", keywordargs.values())
print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
for key, value in keywordargs.items():
print("%s == %s" % (key, value))
Dans l’exemple ci-dessus, keywordargs
est associé à un dictionnaire
comme dans le programme ci-dessous.
function_doubleasterix(SNo001="Alex", SNo002="Tom")
Production:
The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom
Dans l’exemple ci-dessus, le **keywordargs
fournit des arguments de mot-clé sous forme de paires clé-valeur dictionnaire
.
Les utilisations de *
et **
dans les appels de fonction en Python
Les symboles *
et **
sont également utilisés dans les appels de fonction. Utilisez-les pour passer un nombre variable d’arguments à une fonction en utilisant l’une des méthodes suivantes.
- une liste -
*
- un tuple -
*
- un dictionnaire -
**
Voici plusieurs exemples que vous pouvez suivre.
Appelez la fonction avec une variable liste
en entrée. Utilisez *
comme suit
varlist = ["Tom", "John", "Alice"]
functiondef(*varlist)
Appelez la fonction avec une variable dictionnaire
en entrée. Utilisez **
comme suit
vardict = {"a": "Tom", "b": "John", "c": "Alice"}
functiondef(**vardict)
Appelez la fonction avec une variable tuple
en entrée. Utilisez *
comme suit
vartuple = ("Tom", "John", "Alice")
functiondef(*vartuple)
La sortie pour tous les cas ci-dessus est :
SNo1 = Tom
SNo2 = John
SNo3 = Alice