Funções

Esse módulo demonstra a criação e utilização de funções, bem como a utilização de valores padrão nos argumentos, permitindo que o argumento assuma um valor quando não passado na chamada da função.

Argumentos opcionais

A utilização de argumentos opcionais com valores padrão e a passagem de argumentos de forma posicional e nomeada.

def dolar_para_real(valor, dolar=3.30):
    return valor * dolar

Utilização da função:

>>> dolar_para_real(30)
99.0

>>> dolar_para_real(50, 3.40)
170.0

>>> dolar_para_real(valor=100, dolar=3.50)
350.0

>>> dolar_para_real(dolar=3.50, valor=200)
700.0

>>> dolar_para_real(valor=200)
660.0

Aviso

Cuidado com listas como argumentos opcionais!

A criação da lista como argumento com valor padrão faz com que a mesma lista mantenha-se para as múltiplas chamadas que normalmente não é o resultado desejado.

def anexa_errado(elem, lista=[]):
    lista.append(elem)
    return lista
>>> x = anexa_errado(10)
>>> x
[10]

>>> anexa_errado(5)
[10, 5]

>>> y = anexa_errado(20, x)
>>> y
[10, 5, 20]

A criação correta de listas deve ser realizada dentro da função e o argumento com valor padrão deve recebe None para que seja possível identificar quando a lista deve ser criada.

def anexa_correto(elem, lista=None):
    if not lista:
        lista = []
    lista.append(elem)
    return lista
>>> z = anexa_correto(10)
>>> z
[10]

>>> anexa_correto(5)
[5]

>>> w = anexa_correto(20, z)
>>> w
[10, 20]