*args e **kwargs
Se você tem alguma familiaridade com Python, provavelmente já encontrou os termos *args e **kwargs. Eles são termos especiais de sintase usados para passar um número variável de argumentos para uma função. Com isso, eles fornecem maior flexibilidade às funções, permitindo que elas aceitem qualquer número de argumentos posicionais ou de palavras-chave. Usando *args e **kwargs, você pode criar funções mais versáteis e reutilizáveis que podem lidar com uma variedade de cenários de entrada sem definir explicitamente cada parâmetro possível.
*args (Argumentos Posicionais Arbitrários)
O termo *args permite que uma função aceite qualquer número de argumentos posicionais. Ele é usado em definições de funções com um único asterisco (*) antes do nome do parâmetro. Os argumentos são encapsulados em uma tupla dentro da função.
# exemplo do uso de *args
def minha_soma(*args):
return sum(args)
print(minha_soma(1, 2, 3, 4)) # resultado: 10
print(minha_soma(10, 20, 30, 40, 50, 60, 70, 80, 90)) # resultado: 450
Por convenção, o termo “args” é usado, mas você pode usar qualquer nome válido, como mostrado no exemplo abaixo:
def minha_soma(*meus_numeros):
return sum(meus_numeros)
print(minha_soma(1, 2, 3, 4, 5, 6)) # resultado: 21
*args (Argumentos Posicionais Arbitrários)
Em comparação ao *args, o **kwargs permite que uma função aceite qualquer número de argumentos de palavra-chave. Ele empacota todos os argumentos de palavra-chave em um dicionário que pode ser acessado dentro da função. Por exemplo:
# exemplo do uso de **kwargs
def meus_clientes(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
meus_clientes(nome='Marta', idade=28, cidade='Fortaleza')
# resultados
# nome: Marta
# idade: 28
# cidade: Fortaleza
Assim como *args, o termo **kwargs é apenas uma convenção. Você pode usar qualquer nome de variável válido, mas é comum usar kwargs. Independentemente do nome usado, o kwargs é usado em definições de função com dois asteriscos (**) antes do nome do parâmetro. Lembre-se: a instrução *args deve sempre vir antes de **kwargs na definição de uma função.
Veja também:
Concatenações com join() para strings em Python
O que é operador ternário em Python?
F-strings em Strings Multilinhas
Decodificação de strings em Python com decode()
Métodos para Manipular Strings em Python
Módulo Getpass para Prompts de Senhas
Aprenda a comparar textos com Python com Difflib
Módulo textwrap para formatação de textos
Manipulação de arquivos com Python
os.environ: gerenciamento de variáveis de ambiente com Python
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.