Maison >développement back-end >Tutoriel Python >Comment les astérisques simples et doubles (*) décompactent-ils les arguments dans les fonctions Python ?
Déballage des arguments en Python avec et (Double étoile/astérisque)*
En Python, le et les opérateurs * jouent un rôle crucial dans la décompression des arguments lors de l'appel fonctions.
Étoile unique * :
L'étoile unique (*) décompresse une séquence ou une collection en arguments de position. Par exemple, considérons la fonction :
def add(a, b): return a + b
Le code ci-dessous utilise * pour décompresser les valeurs du tuple :
values = (1, 2) s = add(*values)
Cela équivaut à écrire :
s = add(1, 2)
Double étoile ** :
La double étoile (**) effectue une opération similaire pour les dictionnaires, fournissant des valeurs pour les arguments nommés. Considérons la fonction :
def sum(a, b, c, d): return a + b + c + d
Décompresser les valeurs du dictionnaire2 à l'aide de ** donne ce qui suit :
values2 = { 'c': 10, 'd': 15 } s = add(**values2)
Cela équivaut à :
s = sum(a=1, b=2, c=10, d=15)
Combinaison de et :*
Les deux et * peut être utilisé simultanément dans le même appel de fonction. Par exemple :
values1 = (1, 2) values2 = { 'c': 10, 'd': 15 } s = add(*values1, **values2)
Cela équivaut à :
s = sum(1, 2, c=10, d=15)
Déballage des paramètres :
En plus du déballage des arguments, et * peut également être utilisé pour le décompression des paramètres dans les définitions de fonctions.
Par exemple :
def add(*values): # ... def get_a(**values): # ...
Implications sur les performances :
Les implications sur les performances de l'utilisation de et * sont généralement minime. L'opération de déballage implique une surcharge minimale et n'affecte pas l'efficacité de la fonction elle-même. Cependant, un déballage excessif peut rendre le code moins lisible et moins maintenable.
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!