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
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!