Python: para que serve if __name__ == '__main__' e como utilizar
Quando um interpretador Python lê um arquivo, ele primeiro define algumas variáveis especiais. Em seguida, ele executa o código do arquivo.
A variavel __name__ em if __name__ == "__main__" é uma dessas variáveis. A seguir neste artigo você vai aprender a utilizar esse código corretamente.
Resumo
Essa condição permite executar o código quando o arquivo é executado como um script, mas não quando é importado como um módulo.
Módulos Python
Os arquivos Python são chamados de módulos e são identificados pela extensão de arquivo .py.
Quando o interpretador executa um módulo, a variável __name__ será definida como __main__ se o módulo que está sendo executado for o programa principal.
Mas se o código estiver importando o módulo de outro módulo, o __name__ variável será definido para o nome desse módulo.
Na prática
Crie os módulos Python chamados modulo_1.py e modulo_2.py, cole os respectivos códigos para seus módulos:
- modulo_1:
import modulo_2
print("O valor de __name__ em modulo_1: {}".format(__name__))
- modulo_2:
print("O valor de __name__ em modulo_2: {}".format(__name__))
if __name__ == "__main__":
print("modulo_2 NÃO foi importado")
else:
print("modulo_2 foi importado")
Ao executar o modulo_1 vamos ter a saída:
O valor de __name__ em modulo_2: modulo_2
modulo_2 foi importado
O valor de __name__ em modulo_1: __main__
Ao executar o modulo_2 vamos ter a saída:
O valor de __name__ em modulo_2: __main__
modulo_2 NÃO foi importado