Usar Valores de Parâmetro Padrão
É frequentemente útil fornecer um valor padrão (default value) para um parâmetro. Se um argumento para esse parâmetro não for fornecido durante a chamada da função, o valor padrão será usado. Isso torna o parâmetro opcional.
Vamos ver o que acontece quando chamamos uma função sem um argumento obrigatório. Abra o arquivo default_params.py e adicione o seguinte código:
def hello(name):
print(f'Hello, {name}!')
hello()
Salve o arquivo e execute-o no terminal:
python3 ~/project/default_params.py
Isso produzirá um TypeError porque a função hello esperava um argumento, mas não recebeu nenhum.
Traceback (most recent call last):
File "/home/labex/project/default_params.py", line 4, in <module>
hello()
TypeError: hello() missing 1 required positional argument: 'name'
Para corrigir isso, podemos atribuir um valor padrão ao parâmetro name. Modifique o arquivo default_params.py substituindo seu conteúdo pelo código a seguir:
def hello(name="World"):
print(f'Hello, {name}!')
hello()
hello("Jobs")
Agora, execute o script novamente:
python3 ~/project/default_params.py
A saída será:
Hello, World!
Hello, Jobs!
A primeira chamada usa o valor padrão "World", enquanto a segunda chamada usa o argumento fornecido "Jobs".
Regra Importante: Em uma definição de função, todos os parâmetros sem valores padrão devem vir antes de quaisquer parâmetros com valores padrão. Por exemplo, def func(a, b="default") está correto, mas def func(a="default", b) causará um SyntaxError.