Le but de * et ** en Python

Najwa Riyaz 30 janvier 2023
  1. La définition de * en Python
  2. La définition de ** en Python
  3. Les utilisations de * et ** dans les appels de fonction en Python
Le but de * et ** 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.

  1. Arguments positionnels(*)
  2. 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

Article connexe - Python Argument