Maison >développement back-end >Tutoriel Python >Comment fonctionne l'opérateur astérisque (*) dans les définitions et les appels de fonctions Python ?

Comment fonctionne l'opérateur astérisque (*) dans les définitions et les appels de fonctions Python ?

DDD
DDDoriginal
2024-11-09 03:49:02784parcourir

How does the asterisk (*) operator work in Python function definitions and calls?

Quelle est la signification de l'astérisque (*) dans les définitions de fonctions Python ?

En Python, l'opérateur astérisque (*) joue un rôle rôle central dans la définition des fonctions.

Définitions des fonctions

Lorsqu'il est utilisé dans les définitions de fonctions, l'astérisque a deux formes :

  • *identifier signifie un tuple qui accumule tous les arguments de position en excès non explicitement définis dans la signature de la fonction.
  • **identifier représente un dictionnaire qui regroupe tous les arguments de mot-clé en excès.

Exemples

Considérons la définition de fonction suivante :

def get(self, *a, **kw)
  • L'astérisque () après le paramètre a* collecte tous les arguments de position restants dans un tuple.
  • Le double astérisque (*) après le paramètre kw* rassemble tous les arguments de mots-clés restants dans un dictionnaire.

Appels de fonction

Lors de l'appel d'une fonction avec des arguments en excès, ils peuvent être transmis en utilisant la syntaxe de l'astérisque :

Arguments de position

foo("testa", "testb", "testc", "excess", "another_excess")

Dans cet exemple, les arguments de position en excès ("excess" et "another_excess") sont regroupés dans un tuple.

Arguments de mots clés

foo(a="testa", d="excess", c="testc", b="testb", k="another_excess")

Les arguments de mots-clés en excès ("d" et "k") sont rassemblés dans un dictionnaire.

Déballage des arguments

Vous pouvez également décompresser des dictionnaires ou des tuples en fonction arguments utilisant la syntaxe de l'astérisque :

Déballage d'un dictionnaire

argdict = dict(a="testa", b="testb", c="testc", excessarg="string")
foo(**argdict)

Déballage d'un tuple

argtuple = ("testa", "testb", "testc", "excess")
foo(*argtuple)

Conclusion

L'opérateur astérisque (*) fournit un moyen pratique de gérer les arguments excédentaires dans les définitions et les appels de fonctions Python, permettant ainsi la flexibilité et la lisibilité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn