"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como asteriscos únicos e duplos (*) descompactam argumentos nas funções do Python?

Como asteriscos únicos e duplos (*) descompactam argumentos nas funções do Python?

Postado em 2025-02-26
Navegar:844

How Do Single and Double Asterisks (*) Unpack Arguments in Python Functions?

descompactando argumentos em python com e (estrela dupla/asterisk) *

em Python, o e * os operadores desempenham papéis cruciais em descompactar argumentos ao ligar funções. Por exemplo, considere a função:

def Add (a, b): Retorne a B O código abaixo usa * para descompactar os valores da tupla:

valores = (1, 2) s = add (*valores)
def add(a, b):
    return a   b
Isso é equivalente a escrever:

s = add (1, 2)
def add(a, b):
    return a   b

estrela dupla **:

s = add(1, 2)

def sum (a, b, c, d): Retornar A B C D desempacotar os valores do dicionário2 usando ** produz o seguinte:

valores2 = {'c': 10, 'd': 15} s = add (** valores2)
def add(a, b):
    return a   b
isso é equivalente a:

s = sum (a = 1, b = 2, c = 10, d = 15)
def add(a, b):
    return a   b

combinação de

e
s = sum(a=1, b=2, c=10, d=15)
*

ambos e * podem ser usados ​​simultaneamente no Mesma chamada de função. Por exemplo: valores1 = (1, 2) valores2 = {'c': 10, 'd': 15} s = add (*valores1, ** valores2)
isso é equivalente a:

s = sum (1, 2, c = 10, d = 15)
def add(a, b):
    return a   b

Depatando o parâmetro:

s = sum(1, 2, c=10, d=15)
e

* também podem ser usados ​​para o despacking de parâmetro nas definições da função. ] # ... def get_a (** valores): # ...
Implicações de desempenho: as implicações de desempenho de usar

e
    * são geralmente minimal. A operação de descompacagem envolve uma sobrecarga mínima e não afeta a eficiência da própria função. No entanto, a descompacagem excessiva pode tornar o código menos legível e sustentável.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3