Comprendre la signification de (étoile/astérisque) et * (double étoile/astérisque) dans les paramètres
Dans les définitions de fonctions Python, le et * fournissent des idiomes puissants pour gérer des nombres arbitraires de arguments.
Arguments de position : *args
Le paramètre *args permet à une fonction d'accepter un nombre variable d'arguments de position.- Ces arguments sont rassemblés dans un tuple accessible dans le fonction.
-
Exemple :
def foo(x, y, *args):
pass
foo(1, 2, 3)
# args = (3,)
Arguments de mots clés : kwargs**
Le **Le paramètre kwargs permet à une fonction d'accepter n'importe quel nombre d'arguments de mots-clés.- Ces arguments sont collectés dans un dictionnaire où les clés sont les noms des arguments et les valeurs sont les valeurs des arguments.
-
Exemple :
def bar(x, y, **kwargs):
pass
bar(x=1, y=2, name='John', age=27)
# kwargs = {'name': 'John', 'age': 27}
Mixage fixe et arguments variables
Les deux - args et *kwargs peuvent être combinés avec des arguments fixes normaux pour offrir une flexibilité dans les définitions de fonctions.
Exemple :
def foo(kind, *args, bar=None, **kwargs):
print(kind, args, bar, kwargs)
foo(123, 'a', 'b', apple='red')
# 123 ('a', 'b') None {'apple': 'red'}
Utilisations supplémentaires
peut être utilisé pour déballer listes d'arguments lors de l'appel d'une fonction.-
Dans Python 3, - et * peuvent être utilisés sur le côté gauche d'une affectation pour décompresser les itérables en variables.
Python 3.6 introduit une nouvelle syntaxe qui restreint les arguments de position après *.-
Remarque :
Python utilise des dictionnaires pour représenter les arguments de mots-clés, qui maintiennent l'ordre d'insertion dans Python 3.6.-
- Les dictionnaires kwargs maintiennent l'ordre d'insertion dans Python 3.7 et supérieur, même pour les non-CPython implémentations.
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