Funções em Python – Parâmetros opcionais, obrigatórios e valor padrão

Parâmetros opcionais, obrigatórios e valor padrão

Parâmetros opcionais

Às vezes não temos a necessidade de passar um parâmetro a uma função, usando um valor padrão previamente codificado para o parâmetro em questão. Para isso, podemos usar parâmetros opcionais na função – um parâmetro que pode ou não ser passado no momento da chamada à função.

Se um valor não for passado a um ou mais parâmetros da função, serão utilizados os valores padrão definidos no momento de criação da função em si.

Exemplo de valor padrão

def contar (valor=11, caractere="+"):
  for i in range(1,valor):
    print(caractere)
contar()
print("Passando um caractere diferente:")
contar(caractere="&")
print("Passando um valor diferente")
contar(valor=5)

No código acima, os parâmetros valor e caractere são opcionais, o que significa que não precisamos necessariamente passá-los no momento de chamada à função. Nesse caso, a função utilizará os valores-padrão definidos para cara parâmetro – no caso, 11 e + para os parâmetros valor e caractere, respectivamente.

Passando parâmetros fora de ordem

Quando usamos argumentos nomeados, eles podem ser passados fora de ordem na chamada à função – desde que os nomes de todos os parâmetros sejam mencionados. Caso você tente passar os parâmetros fora de ordem, mas sem nomeá-los, ocorrerá um erro de execução do script. Veja o exemplo a seguir:

def contar (valor=11, caractere="+"):
  for i in range(1,valor):
    print(caractere)
contar()
print("Passando valor e caractere diferentes:")
contar(6,"$")
#print("Tentando passar os parâmetros fora de ordem:")
#contar("#",7)
print("Passando os parâmetros fora de ordem, nomeados:")
contar(caractere="#",valor=7)

Parâmetros opcionais e obrigatórios

No exemplo a seguir, o parâmetro caractere é obrigatório, pois não possui valor padrão, e deve ser declarado sempre antes dos parâmetros opcionais na função. Ou seja, parâmetros que não são nomeados são obrigatórios, o que significa que sempre devem ser passados quando a função for invocada.

def contar (caractere,valor=11):
  for i in range(1,valor):
    print(caractere)
print("Passando apenas o argumento obrigatório:")
contar("#")
print("Passando um caractere diferente, nomeado:")
contar(caractere="&")
print("Passando o caractere e um valor diferente")
contar("!",valor=5)
print("Tentando executar a função sem passar o parâmetro obrigatório:")
contar()

Valor padrão em argumentos – outro exemplo

A seguir mais um exemplo do uso de parâmetros com valor padrão em Python:

x = 5
y = 6
z = 3
def soma_mult (a, b, c = 0):
    if c == 0:
        return a * b
    else:
        return a + b + c
prod = soma_mult(x,y)
print("O produto de x e y é %d" % prod)
soma = soma_mult(x,y,z)
print("A soma de x, y e z é %d" % soma)

Próximo: Empacotando e Desempacotando Parâmetros

Sobre Fábio dos Reis (1278 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*