Coletânea Python do ZERO às Redes Neurais Artificiais
Empacotamento e Desempacotamento
Apesar do nome um pouco estranho nesse contexto, aqui simplesmente estamos trabalhando com a ideia de repassar múltiplos dados/valores como parâmetro de uma função.
Em outros momentos aprendemos que é possível adicionar mais de um tipo de dado/valor como atributo de uma variável, o que era feito normalmente por meio de listas, tuplas, conjuntos e dicionários, mas isso também se estende quando estamos criando funções.
Até o momento, gradualmente fomos aprendendo sobre diferentes possibilidades dentro de funções, porém até o momento tudo estava muito restrito a um dado/valor como parâmetro de uma função.
Porém, fazendo o uso de *args e **kwargs podemos extrapolar essa lógica e atribuir, por exemplo, todo o conteúdo de um dicionário como um parâmetro de uma função, e isto é convencionalmente conhecido como empacotamento e desempacotamento de dados.
Visualizando estes conceitos em um exemplo, repare que aqui inicialmente criamos uma tupla de nome numeros com alguns dados numéricos (int e float) em sua composição, da mesma forma criamos um simples dicionário chamado dados com apenas dois conjuntos de chaves e valores.
A partir deste ponto criamos uma função de nome identificacao( ) parametrizada com *args e **kwargs. No corpo dessa função simplesmente incluímos duas funções print( ) responsáveis por exibir em tela o conteúdo que estiver atribuído para *args e para kwargs respectivamente.
Por fim, repare que chamamos a função identificacao( ) parametrizando a mesma com *numeros no lugar de *args e dados no lugar de *kwargs.
Como visto nos capítulos anteriores, “args” e “kwargs” são normalmente usados apenas como convenção, neste exemplo fica claro que tais nomes podem ser alterados livremente.
Nesse caso, *args e *kwargs levam os nomes das próprias variáveis que contém os dados a serem usados como parâmetro de nossa função.
Como esperado, o retorno das funções print( ) são os respectivos dados oriundos de numeros e de dados, parâmetros da função identificacao( ).