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