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.
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, numa parte do curso me deparei com isso:
if(name == "main"): jogar()
gostaria de saber o que exatemente, explicitamente isto faz?
Abraços.
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.