6.6 Número Arbitrário De Parâmetros (*Args)

Podemos passar um número arbitrário de parâmetros em uma função. Utilizamos as chamadas variáveis mágicas do Python: *args e **kwargs. Muitos programadores tem dificuldades em entender essas variáveis. Vamos entender o que elas são.

Não é necessário utilizar exatamente estes nomes: *args e **kwargs . Apenas o asterisco(*), ou dois deles(**), serão necessários. Podemos optar, por exemplo, em escrever *var e **vars . Mas

*args e **kwargs é uma convenção entre a comunidade que também seguiremos.

Primeiro, aprenderemos a usar o *args . É usado, assim como o **kwargs , em definições de funções. *args e **kwargs permitem passar um número variável de argumentos de uma função. O que a variável significa é que o programador ainda não sabe de antemão quantos argumentos serão passados para sua função, apenas que são muitos. Então, neste caso usamos a palavra chave *args .

Veja um exemplo:‌

def teste(arg, \*args):
print(f'primeiro argumento normal: {} {arg}') for arg in args:
print(f'outro argumento: {} {arg}') teste('python', 'é', 'muito', 'legal')

Que vai gerar a saída:

primeiro argumento normal: python outro argumento: é

outro argumento: muito outro argumento: legal

O parâmetro arg é como qualquer outro parâmetro de função, já o *args recebe múltiplos parâmetros. Viu como é fácil? Também poderíamos conseguir o mesmo resultado passando um list ou tuple de argumentos, acrescido do asterisco:

lista = ["é", "muito", "legal"] teste('python', \*lista)

Ou ainda:

tupla = (“é”, “muito”, “legal”) teste(‘python’, *tupla)

O *args então é utilizado quando não sabemos de antemão quantos argumentos queremos passar para uma função. O asterisco ( * ) executa um empacotamento dos dados para facilitar a passagem de parâmetros, e a função que recebe este tipo de parâmetro é capaz de fazer o desempacotamento.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️