Unk3n0w7 1,321 Posted March 31, 2014 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