This entry is parte 11 de 24 in the series Python + IA: Fundamentos e Projetos Práticos
Python + IA: Fundamentos e Projetos Práticos
Sabe quando você quer que uma função aceite qualquer número de argumentos, ou argumentos com nome e valor?
Hoje você vai dominar os dois recursos mais flexíveis para isso:
*args→ aceita múltiplos valores posicionais**kwargs→ aceita múltiplos valores nomeados
🎯 O que você vai aprender
- Usar
*argsem funções - Usar
**kwargsem funções - Combinar argumentos normais,
*argse**kwargs - Criar funções altamente adaptáveis
- Aplicar isso em um sistema de registro dinâmico
📦 O que é *args?
Permite passar vários argumentos sem limite, que são recebidos como tupla:
def somar(*numeros):
return sum(numeros)
print(somar(1, 2, 3)) # 6
print(somar(10, 20)) # 30
🗃️ E **kwargs?
Recebe argumentos nomeados (com chave e valor), como um dicionário:
def exibir_info(**dados):
for chave, valor in dados.items():
print(f"{chave}: {valor}")
exibir_info(nome="Asllan", idade=41)
🧠 Combinação poderosa:
def exemplo(a, b=0, *args, **kwargs):
print("a =", a)
print("b =", b)
print("args =", args)
print("kwargs =", kwargs)
📌 Desafio do Dia: Cadastro Dinâmico com **kwargs
Crie uma função que:
- Receba qualquer número de campos (nomeados) de um cliente
- Imprima um relatório personalizado com as informações
💻 Código sugerido:
def cadastrar_cliente(**dados):
print("\n📋 Cliente cadastrado:")
for campo, valor in dados.items():
print(f"{campo.capitalize()}: {valor}")
# Exemplo de uso:
cadastrar_cliente(nome="Asllan", idade=41, cidade="Rio de Janeiro", vip=True)
🔁 Extra: usando *args para somar valores
def calcular_total(*valores):
return sum(valores)
print("Total:", calcular_total(100, 50, 20))
🧠 O que você aplicou hoje?
- Funções altamente reutilizáveis
- Entrada dinâmica com número indefinido de argumentos
- Tratamento de dados flexível com
*argse**kwargs - Adaptação de funções para contextos diferentes (como APIs ou IA)
💬 Profissionalmente falando:
Você encontra *args e **kwargs em quase todas as bibliotecas modernas — é uma das formas mais limpas de criar funções reutilizáveis e adaptáveis a qualquer cenário.