Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Comando if (__name__ == "__main__")

Bom dia,

Alguém pode me explicar o comando if (name == "main"). Eu não entendi para que serve. Eu executei cada arquivo no Pycharm e o jogo foi chamado. Isso serve apenas para o prompt de comando?

att,

Marconi

3 respostas

Esse comando serve para indicar o trecho inicial do seu codigo quando ele for executado

solução!

Oi. O Pedro acabou de fazer essa mesma pergunta no fórum! Eu vou repetir a minha resposta aqui:

Então, você consegue, através do bloco if__name__="main", permitir ou até mesmo previnir que partes do código rodem quando os módulos são importados.

Se você notou, quando o professor utilizou-o no aquivo.py jogos, ele deu a opção de você poder rodar tanto o jogo de forca, selecionando certa parte interessada do código, quanto o jogo advinhação, escolhendo a opção que restava.

Quando o interpretador do Python lê o arquivo ele já faz com que a variavel name seja setada para main, o principal, caso o módulo estaja rodando ou estiver importado. Você então está permitindo que o arquivo jogos.py traga mais dois outros módulos para rodar, importado por outro módulo. Nesse cao, você precisa de variáveis para te auxiliar, como no caso do name, que vai representar o nome do módulo. Se ele for, no entanto, um módulo a ser executado como um programa por si, ele é definido como main, o que difere quando o módulo é importado, o que traria um valor igual ao nome do módulo.

O bloco if __name__ == "__main__": serve basicamente pra você executar um trecho de código que queira testar dentro desse script. Exp:

def soma_dois_numeros(x,  y):
    return x + y


def main():
    valor = soma_dois_numeros(x,  y)

if __name__ == "__main__":

    main()

Se vc importar esse script como um pacote tudo que está dentro da função "main" não será executado pelo interpretador python, caso vc rode ele diretamente, a função "main" será executada!