< Python > Parâmetros *args e **kwargs
- #Python
Neste tópico será explicado de forma objetiva e breve o uso de parâmetros *args e **kwargs utilizados na linguagem de programação Python
De forma breve, esses argumentos nos permitem passar quantos parâmetros quisermos, sendo eles de keyword ou posição.
*args
O parâmetro não precisa se chamar args, porém deve ter *, sendo assim o parâmetro *qualquer_nome válido.
Abaixo temos uma função que recebe o nome de um ator e quando ganhou algum oscar:
def ator_oscars(nome, *args):
print ('Ator:', nome)
for ano in args:
print('Oscar:', ano)
ator_oscars('Will Smith', '2002', '2007', '2022')
Como é possível observar, são fornecidos 3 argumentos que indicam o ano em que o ator venceu a premiação.
-> Output
Ator: Will Smith
Oscar: 2002
Oscar: 2007
Oscar: 2022
**kwargs
Passa um número variável de argumentos de keywords para uma função Python. Logo, podemos utilizar vários argumentos para diferentes propósitos.
O parâmetro não precisa se chamar kwargs, porém deve ter **, sendo assim o parâmetro **produtos é válido.
A função abaixo cria um dicionário de elementos e retorna a quantidade total de produtos fornecidos.
def total_produtos(**produtos):
total = 0
for quantidade in produtos.values():
total += quantidade
return total
print('Total de produtos: ',total_produtos(chococolate=3, carne=7, limao=8))
print('Total de produtos: ',total_produtos(bolo=1, refrigerante=2, leite=3))
print('Total de produtos: ',total_produtos(ovos=12, azeite=1, farinha=1))
-> Output
Total de produtos: 18
Total de produtos: 6
Total de produtos: 14
Conclusão
Nesse artigo, foi possível aprender de forma objetiva o uso de dois parâmetros que tornam uma função flexível, portanto, aceitando vários argumentos ou keywords.
Referências
Conecte-se comigo