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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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
Esse comando serve para indicar o trecho inicial do seu codigo quando ele for executado
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!