Combinação de parâmetros em Python
É possível passar parâmetros nomeados e posicionais
para a mesma função simultaneamente.
Isso é feito usando o símbolo *,
que indica que os parâmetros especificados
à sua direita devem ser considerados nomeados,
a menos que seus valores padrão não precisem
ser usados.
Vamos criar uma função que irá
exibir todos os parâmetros no console. A variável
data representará um parâmetro
posicional comum. Em seguida, após o símbolo
*, são definidas duas variáveis start
e end com valores padrão.
No entanto, ao chamar a função, vamos tornar essas
variáveis nomeadas:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Resultado da execução do código:
1 2 3
Se removermos o valor padrão da variável
start e, ao mesmo tempo, não a fornecermos como
um parâmetro nomeado, ocorrerá um erro.
Isso acontece porque o símbolo *
já definiu start como uma variável
nomeada:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # irá gerar um erro
Qual será o resultado da execução do seguinte código:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Qual será o resultado da execução do seguinte código:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Qual será o resultado da execução do seguinte código:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))