Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Parametros opcionais e nomeados

Gostaria de contribuir com o que entendi, porém gostaria também que alguém me desse um feedback se estou raciocinando corretamente:

Resumindo: parâmetros opcionais, são aqueles que eu posso passar ou não, e se declarados explicitamente uma vez, mesmo que eu chame a função sem parâmetro algum ele irá entender como um "default" pois já foi setado.

def funcao(texto= 'A', valor = 2) => chamando a funçao ... funcao(texto,valor) ou  funcao() "aqui os valores já estão fixados por padrão em (texto, valor)" ou ainda funcao('b', 3).

o que não pode ocorrer:

def funcao(valor) => chamando a funcao ... funcao() "aqui é obrigatório passar um parâmetro pois a variável valor não tem um valor pré-fixado"

parâmetros nomeados são aqueles que ao definirmos um valor devemos chamá-los na ordem de definição correta, a não ser que os dois estejam setados, ai independente da ordem ele entenderá pela sua definição

def teste(a, b=1) => chamando a função  ... teste(a, 1) 
def teste (a=2, b=1) => chamando a função ... teste(b,a) ou teste () "aqui os valores já estão fixados por padrão em (2,1)"

o que não pode ocorrer:
def teste(a, b=1) => chamando a função teste(1) aqui ele colocar o valor 1 em 'a'
2 respostas
solução!

Olá Juliano, na implementação da função def teste(a, b=1) o parâmetro a* é posicional e é obrigatório passar seu valor quando a função for chamada. Por isso quando você chama-la teste(1), ela será executada normalmente, como você mencionou, e irá atibuir o valor *1 no parâmetro a*, de fato. Porém se você chamar a função sem o parâmetro teste(), o interpretador irá retornar um erro, pois ele espera o parâmetro *a.

Mas acredito que seu raciocínio está correto sim, só achei interessante fazer esse adendo. Espero ter ajudo.

Obrigado Maercio!