3
respostas

Colocar a função no final do código trava o meu programa.

Nos meus teste, acabei preferindo criar um módulo separado para todas as funções e importá-las para dentro do módulo do jogo e assim deixar tudo mais limpo. Porém, tentei seguir o exercício da aula em questão colocando a função no fim do módulo e com isso surge a mensagem:

name 'imprime_mensagem_abertura()' is not defined

Desde já, agradeço quem puder ajudar. (=

3 respostas

Oi Alan! Como você está?

Poderia colocar seu código aqui no fórum para que possamos ver melhor o que pode estar gerando esse erro?

Aguardo seu retorno :)

Oi, Millena! Tudo bom?

Esse teste serve pra ilustrar:


mostra_mensagem()

def mostra_mensagem():
    print("Será que funciona?")

mensagem exibida: 
"name 'mostra_mensagem' is not defined"

já se eu inverter:

def mostra_mensagem():
    print("Será que funciona?")

mostra_mensagem()

Ele roda perfeitamente. Lembro que no curso de lógica de programação, o JavaScript aceitava isso sem preoblemas (chamar a função e só declarar ela lá embaixo). Nesse curso aqui de python o professor usa o PyCharm enquanto eu estou usando o VS Code, mas acredito que esse não seja o problema. O que pode ser? )=

Oi Alan! Tudo ótimo e com você?

Infelizmente no Python não conseguimos chamar uma função antes de declará-la.

Isso porque, quando um módulo Python (arquivo.py) é executado, as instruções presentes nele são executadas na ordem em que aparecem, de cima para baixo (do começo ao fim). Por isso não é possível fazer referência a algo que não tenha sido antes definido.

Programas em linguagens como C ++, por exemplo, são geralmente pré-processados antes de serem executados e durante o estágio de compilação, o programa inteiro é processado de uma vez. Por isso é permitida a chamada de funções antes de sua declaração.

Espero ter ajudado :)

Qualquer dúvida estou por aqui, tá bom?

Bons estudos!