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 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.
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 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”.
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”.
- 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.
- 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.
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.
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.
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.


