Search
Close this search box.

Python Args e Kwargs: Guia Completo e Detalhado para Iniciantes

Aprenda a usar no Python args e kwargs de maneira eficiente em suas funções! Neste guia completo e detalhado para iniciantes, vamos explorar passo a passo como esses recursos poderosos podem ajudar a tornar seu código mais flexível e fácil de entender. Além de exemplos práticos, também abordaremos dicas e melhores práticas para usar args e kwargs com eficácia.

Python Args

O que é Args?

No Python, “args” é uma abreviação de “argumentos”. Ele permite que você passe um número variável de argumentos posicionais para uma função. Para isso, usamos o operador de asterisco (*) antes do nome da variável. Veja o exemplo abaixo:

def minha_funcao(*args):
    for arg in args:
        print(arg)

Analisando o código acima, temos:

  • “def minha_funcao(*args):” cria uma função chamada “minha_funcao”, que aceita um número variável de argumentos posicionais;
  • O laço “for” percorre todos os argumentos passados;
  • “print(arg)” exibe cada argumento.
exemplo de função utilizando args e print

Exemplo de uso do Args

Vamos agora ver como usar o Python args na prática, para isto execute o seguinte exemplo:

def somar_numeros(*args):
    soma = 0
    for numero in args:
        soma += numero
    return soma

resultado = somar_numeros(1, 2, 3, 4, 5)
print("A soma dos números é:", resultado)

Neste exemplo:

  • Criamos a função “somar_numeros(*args)” para receber e somar vários números;
  • Inicializamos a variável “soma” com 0;
  • Usamos um laço “for” para percorrer e somar cada número passado como argumento;
  • Retornamos o valor de “soma”;
  • Chamamos a função “somar_numeros” com os números 1, 2, 3, 4 e 5;
  • Exibimos o resultado da soma.
exemplo de função que soma utilizando args como argumento

Boas práticas ao usar Args

Ao usar args em suas funções, siga estas dicas e boas práticas:

  • Use nomes descritivos: em vez de usar apenas “args”, escolha um nome que descreva o propósito dos argumentos, como “numeros” ou “itens”.
def subtrair_numeros(*numeros):
    total = 0
    for numero in numeros:
        total += numero
    return total
  • Combine args com argumentos padrão: se sua função tiver argumentos padrão, coloque-os antes do *args para evitar erros.
def subtrair_numeros(numero_inicial, *numeros):
    for numero in numeros:
        numero_inicial += numero
    return numero_inicial
  • Evite usar args em excesso: embora args seja útil, usá-lo em excesso pode tornar seu código menos legível, por isto use-o apenas quando necessário.

Entendendo o Python Kwargs

O que é Kwargs?

Agora, conheça o “kwargs”. Ele é uma abreviação de “keyword arguments” e permite passar um número variável de argumentos nomeados (palavras-chave) para uma função. Para isto, utilizamos o operador de asterisco duplo (**) antes do nome da variável. Veja o exemplo a seguir:

def minha_funcao(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

Neste trecho de código:

  • “def minha_funcao(**kwargs):” define uma função chamada “minha_funcao” que aceita um número variável de argumentos nomeados;
  • O laço “for” percorre todos os argumentos nomeados;
  • “print(key, value)” exibe cada chave e valor dos argumentos nomeados.
exemplo kwargs com print

Exemplo de uso do Kwargs

Vamos ver como usar o Python kwargs em um exemplo prático:

def exibir_dados(**kwargs):
    for chave, valor in kwargs.items():
        print(f"{chave}: {valor}")

exibir_dados(nome="Carlos", idade=30, cidade="Rio de Janeiro")

Neste exemplo:

  • Criamos a função “exibir_dados(**kwargs)” para receber e exibir várias informações;
  • Usamos um laço “for” para percorrer cada chave e valor dos argumentos nomeados;
  • Utilizamos “print(f”{chave}: {valor}”)” para exibir a chave e o valor de cada argumento nomeado;
  • Chamamos a função “exibir_dados” com os argumentos nomeados “nome”, “idade” e “cidade”.
exemplo de função kwargs printando

Boas práticas ao usar Kwargs

Ao usar kwargs em suas funções, siga estas dicas e boas práticas:

  • Escolha nomes significativos: assim como com args, use nomes descritivos para kwargs, como “dados_pessoais” ou “configuracoes”.
exemplo kwargs parametro dos clientes
  • Combine kwargs com argumentos padrão e/ou args: kwargs pode ser usado em conjunto com argumentos padrão e args para aumentar a flexibilidade da função.
função utilizando valor fixo e kwargs
  • Não abuse do uso de kwargs: usar kwargs em excesso pode tornar seu código confuso, portanto use-o apenas quando for apropriado.

Combinando Python Args e Kwargs em uma Função

Podemos combinar args e kwargs em uma única função, dando ainda mais flexibilidade ao nosso código. Veja o exemplo a seguir:

def registrar_pedido(pedido, *ingredientes,**info_cliente):
    print(f"Pedido: {pedido}")
    print("Ingredientes:")
    for ingrediente in ingredientes:
        print(f"- {ingrediente}")
    print("Informações do cliente:")
    for chave, valor in info_cliente.items():
        print(f"{chave}: {valor}")

registrar_pedido("Pizza", "queijo", "tomate", "manjericão", nome="Ana", telefone="99999-8888")

Neste exemplo:

  • Criamos a função “registrar_pedido” que aceita um argumento fixo “pedido”, args para os ingredientes e kwargs para informações do cliente;
  • Exibimos o pedido, ingredientes e informações do cliente;
  • Chamamos a função “registrar_pedido” com um argumento fixo, args para ingredientes e kwargs para informações do cliente.
exemplo função args e kwargs

Boas práticas ao combinar Args e Kwargs

Quando combinar args e kwargs em suas funções, siga estas dicas e boas práticas:

  • Ordene corretamente os argumentos: coloque primeiro os argumentos obrigatórios, seguidos pelos opcionais, depois *args e finalmente **kwargs;
  • Use nomes descritivos: assim como nos casos individuais de args e kwargs, use nomes descritivos para tornar seu código mais claro;
  • Mantenha a legibilidade em mente: mesmo ao combinar args e kwargs, certifique-se de que seu código permaneça fácil de ler e entender.

Funções de alta ordem com Args e Kwargs

Args e kwargs podem ser usados em funções de alta ordem, ou seja, funções que aceitam outras funções como argumentos. Veja este exemplo:

def aplicar_funcao(funcao, *args, **kwargs):
    return funcao(*args, **kwargs)

def somar(a, b):
    return a + b

resultado = aplicar_funcao(somar, 5, 7)
print("O resultado da soma é:", resultado)

Neste exemplo:

  • Criamos a função “aplicar_funcao” que aceita outra função como argumento, juntamente com args e kwargs;
  • Definimos uma função simples chamada “somar” que adiciona dois números;
  • Chamamos “aplicar_funcao” com a função “somar” e os argumentos 5 e 7;
  • Exibimos o resultado da soma.
exemplo função de alto nível com args e kwargs

Decoradores com Args e Kwargs

Decoradores são uma aplicação comum de args e kwargs. Eles permitem adicionar funcionalidades a funções existentes sem modificá-las. Veja o exemplo:

def meu_decorador(funcao):
    def wrapper(*args, **kwargs):
        print("Antes da função")
        resultado = funcao(*args, **kwargs)
        print("Depois da função")
        return resultado
    return wrapper

@meu_decorador
def somar(a, b):
    return a + b

resultado = somar(5, 7)
print("O resultado da soma é:", resultado)

Neste exemplo:

  • Criamos um decorador chamado “meu_decorador” que aceita uma função como argumento;
  • Dentro do decorador, definimos uma função “wrapper” que aceita args e kwargs;
  • Chamamos a função original dentro do “wrapper” com args e kwargs;
  • Aplicamos o decorador “meu_decorador” à função “somar”;
  • Chamamos a função “somar” com os argumentos 5 e 7;
  • Exibimos o resultado da soma.

Com o decorador aplicado, a função “somar” exibe mensagens antes e depois de sua execução sem que tenhamos modificado seu código diretamente.

exemplo de decorator com args e kwargs

Conclusão

Parabéns por concluir este guia completo e detalhado sobre Python args e kwargs para iniciantes! Agora você sabe como usar e combinar esses recursos em suas funções, tornando seu código mais flexível e adaptável a diferentes cenários.

Lembre-se das boas práticas apresentadas neste guia e certifique-se de que seu código seja legível e bem organizado ao usar args e kwargs. Isso facilitará o entendimento e a manutenção do seu código por você e outros desenvolvedores.

Ao dominar args e kwargs, você estará mais preparado para lidar com situações complexas e criar soluções eficientes e reutilizáveis em Python. Continue praticando e explorando novos recursos da linguagem para aprimorar suas habilidades e se tornar um programador Python ainda melhor.