15.12.2022 Views

Python Eficaz

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

por palavras-chave”).

Lembre-se

• Os argumentos de uma função podem ser especificados por posição ou por

palavra-chave.

• O uso de palavras-chave deixa mais clara a finalidade de cada argumento,

enquanto o uso de argumentos posicionais pode ser bastante confuso.

• Argumentos em palavras-chave com valores default facilita a implementação

de novos comportamentos a uma função existente, especialmente quando a

função já é usada por código chamador antes da modificação.

• Parâmetros opcionais por palavra-chave devem ser sempre passados por

palavra-chave, nunca por posição.

Item 20: Use None e docstrings para especificar

argumentos default dinâmicos e específicos

Às vezes, precisamos usar um tipo não estático como valor-padrão de um

argumento por palavra-chave. Por exemplo, digamos que se queira imprimir

mensagens de log com a marcação da hora exata em que ocorreu o evento sendo

registrado. No caso padrão, a mensagem deve incluir o horário em que a função

foi chamada. O exemplo a seguir pode ser uma alternativa, desde que se saiba

que os argumentos default são recalculados a cada chamada da função.

def log(message, when=datetime.now()):

print('%s: %s' % (when, message))

log('Hi there!')

sleep(0.1)

log('Hi again!')

>>>

2014-11-15 21:10:10.371432: Hi there!

2014-11-15 21:10:10.371432: Hi again!

Contudo, não são! Os horários são os mesmos porque datetime.now é executado

uma única vez: quando a função foi definida. Os valores default dos argumentos

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!