Déballer les arguments en python avec et (double star / astérisque) *
dans python, le et * Les opérateurs jouent des rôles cruciaux dans le déballage des arguments lors de l'appel Fonctions.
Single Star *:
L'étoile unique (*) déballait une séquence ou une collection en arguments de position. Par exemple, considérez la fonction:
def add(a, b): return a b
Le code ci-dessous utilise * pour déballer les valeurs Tuple:
values = (1, 2) s = add(*values)
Ceci équivaut à l'écriture:
s = add(1, 2)
double star **:
La double étoile (**) effectue une opération similaire pour les dictionnaires, fournissant des valeurs pour les arguments nommés. Considérez la fonction:
def sum(a, b, c, d): return a b c d
Déballer les valeurs du dictionnaire2 en utilisant ** donne ce qui suit:
values2 = { 'c': 10, 'd': 15 } s = add(**values2)
This is equivalent to:
s = sum(a=1, b=2, c=10, d=15)
combinaison de et : *
à la fois 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)
Ceci est équivalent à:
s = sum(1, 2, c=10, d=15)
Déballage des paramètres:
En plus de déballer les arguments, et * peuvent également être utilisés pour le déballage des paramètres Dans les définitions de fonction.
def add (* valeurs): # ... def get_a (** valeurs): # ...
def add(*values): # ... def get_a(**values): # ...
Implications de performance: Les implications de performance de l'utilisation
et * sont généralement minimes. L'opération de déballage implique des frais généraux minimaux et n'affecte pas l'efficacité de la fonction elle-même. Cependant, un déballage excessif peut rendre le code moins lisible et maintenable.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3