Coletânea Python do ZERO às Redes Neurais Artificiais
Função composta, com *args e **kwargs
Outra possibilidade que existe em Python é a de trabalharmos com *args e com **kwargs, que nada mais são do que instruções reservadas ao sistema para que permita o uso de uma quantidade variável de argumentos.
Por conversão se usa a nomenclatura args e kwargs mas na verdade você pode usar o nome que quiser, o marcador que o interpretador buscará na verdade serão os * asteriscos simples ou duplos.
Importante entender também que, como estamos falando em passar um número variável de parâmetros, isto significa que internamente no caso de *args os mesmos serão tratados como uma lista e no caso de **kwargs eles serão tratados como dicionário.
Exemplo *args
Definida a função print_2_vezes(*args) é passado como instrução um comando for, ou seja um laço que irá verificar se a variável temporária parametro está contida em args, como instrução do laço é passado o comando print, que irá exibir duas vezes e concatenar o que estiver atribuído a variável temporária parametro.
Por fim, seguindo o código é chamada a função print_2_vezes e é passado como parâmetro a string ‘Olá Mundo!!!’. Lembrando que como existem instruções dentro de instruções é importante ficar atento a indentação das mesmas.
O retorno será: Olá Mundo!!! !Olá Mundo!!!
Representação visual:
Exemplo de **kwargs :
Definida a função informacoes(**kwargs) é passado como instrução o comando for, que irá verificar a presença dos dados atribuídos a dado e valor, uma vez que kwargs espera que, como num dicionário, sejam atribuídas chaves:valores.
Por fim, se estes parametros estiverem contidos em kwargs será dado o comando print dos valores de dados e valores, convertidos para string e concatenados com o separador “ – “.
Então é chamada a função informações( ) pela variável pessoa e é passado como chaves e valores para a mesma os dados contidos no código acima.
O retorno será: nome-Fernando
idade-30
nacionalidade-Brasileiro
Representação visual: