antiblock
Elveron
  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
Unk3n0w7

Parâmetros Com Valores Default

1 post in this topic

A mais útil das três é especificar um valor default para um ou mais argumentos. Isso cria uma função que pode ser invocada com um número menor de argumentos do que quando foi definida.
 

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):    while 1:        ok = raw_input(prompt)        if ok in ('y', 'ye', 'yes'): return True        if ok in ('n', 'no', 'nop', 'nope'): return False        retries = retries - 1        if retries < 0: raise IOError, 'refusenik user'        print complaint
Essa função pode ser chamada de duas formas: ask_ok('Do you really want to quit?') ou como ask_ok('OK to overwrite the file?', 2).
 
Este exemplo também introduz a keyword in, que verifica se uma sequência contém ou não um determinado valor.
 
Os valores default são avaliados durante a definição da função, e no escopo em que a função foi definida:

i = 5def f(arg = i):     print argi = 6f()

irá imprimir 5.

Aviso importante: Valores default são avaliados apenas uma vez. Isso faz diferença quando o valor default é um objeto mutável como uma lista ou dicionário. Por exemplo, a função a seguir acumula os argumentos passados em chamadas subsequentes:
 

def f(a, L=[]):    L.append(a)    return Lprint f(1)print f(2)print f(3)

Isso irá imprimir:
 

[1][1, 2][1, 2, 3]

Se você não quiser que o valor default seja compartilhado entre chamadas subsequentes, pode reescrever a função assim:
 

def f(a, L=None):    if L is None:        L = []    L.append(a)    return L

Créditos : Python Marie

 

Share this post


Link to post
Share on other sites
antiblock
Cyphriun

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this