3.5 - Uso e definições
Juntando fragmentos de código da seção anterior, o programa inteiro fica assim:
def print_lyrics():
print("I'm a lumberjack, and I'm okay.")
print("I sleep all night and I work all day.")
def repeat_lyrics():
print_lyrics()
print_lyrics()
repeat_lyrics()
Este programa contém duas definições de função: print_lyrics
e repeat_lyrics
. As definições de função são executadas como outras instruções, mas o efeito é criar objetos de função. As instruções dentro da função não são executadas até que a função seja chamada, e a definição de função não gera nenhuma saída.
Como poderíamos esperar, é preciso criar uma função antes de executá-la. Em outras palavras, a definição de função tem que ser executada antes que a função seja chamada.
Como exercício, mova a última linha deste programa para o topo, para que a chamada de função apareça antes das definições. Execute o programa e veja qual é a mensagem de erro que aparece.
Agora mova a chamada de função de volta para baixo e mova a definição de print_lyrics
para depois da definição de repeat_lyrics
. O que acontece quando este programa é executado?