"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 *args e kwargs melhoram a flexibilidade de funções em Python?

Como *args e kwargs melhoram a flexibilidade de funções em Python?

Publicado em 2024-11-24
Navegar:447

How Do *args and kwargs Enhance Function Flexibility in Python?

Desbloqueando o poder dos args e kwargs: um guia abrangente*

Curioso sobre os enigmáticos args e *kwargs? Esses parâmetros flexíveis desempenham um papel fundamental no Python, capacitando você a projetar funções que podem acomodar um número variável de argumentos e argumentos de palavras-chave.

Desmistificando *args

*args permite que uma função receba um número arbitrário de argumentos posicionais. Ele reúne esses argumentos em uma tupla, tornando-os facilmente acessíveis dentro do corpo da função.

Considere o seguinte exemplo:

def my_args_function(hello, *args):
    print(hello)
    for each in args:
        print(each)

my_args_function("LOVE", "lol", "lololol")

Saída:

LOVE
['lol', 'lololol']

Desbloquear kwargs**

**kwargs serve a um propósito semelhante, mas para argumentos de palavras-chave. Ele coleta todos os argumentos de palavras-chave passados ​​para a função em um dicionário, com os nomes dos argumentos como chaves e os valores correspondentes como os valores do dicionário.

Por exemplo, podemos modificar nosso exemplo anterior para aceitar argumentos de palavras-chave:

def my_kwargs_function(hello, **kwargs):
    print(hello)
    for key, value in kwargs.items():
        print(key, "-->", value)

my_kwargs_function("HELLO", name="John", age=30)

Saída:

HELLO
name --> John
age --> 30

O uso efetivo de args e kwargs*

args e *kwargs fornecem flexibilidade excepcional quando definir funções. Aqui estão algumas aplicações práticas:

  • Tratamento de número desconhecido de argumentos: Funções como print e sum recebem um número variável de argumentos. *args permite que você crie funções genéricas que podem lidar com qualquer número de entradas.
  • Funções de substituição: Ao substituir um método de superclasse, use args e *kwargs para chamar o método substituído com os argumentos fornecidos pelo usuário.
  • Construindo dicionários dinamicamente: **kwargs permite você pode criar dicionários sem esforço, coletando pares de valores-chave de argumentos de palavras-chave.
  • Passando dados para classes filhas: Na programação orientada a objetos, as classes filhas podem usar args e *kwargs para herdar e estender a funcionalidade de suas classes pai.

Lembre-se, args e *kwargs devem sempre sejam os últimos parâmetros na definição de uma função para evitar comportamento ambíguo. Ao aproveitar seu poder, você abre uma ampla gama de possibilidades na programação Python.

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