1
resposta

if(__name__ == "__main__"):

Bom dia, numa parte do curso me deparei com isso:

if(name == "main"): jogar()

gostaria de saber o que exatemente, explicitamente isto faz?

Abraços.

1 resposta

Oi! 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 adivinhaçã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 esteja 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 caso, 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.