Neste artigo veremos em detalhes o que if __name__ == “__main__”: faz, uma instrução que as vezes nos deparamos em bibliotecas, por exemplo.
Fala programador(a), beleza? Bora aprender mais sobre Python!
Esta instrução é encontrada as vezes em bibliotecas/códigos de terceiros e parece um tanto misteriosa, o que será que ela faz?
Basicamente podemos entender que quando o nosso código de um arquivo não é importado em outro __name__ será __main__
Já quando se o nosso arquivo foo.py, por exemplo, é importado no arquivo bar.py
O valor de __name__ se torna bar.py, no arquivo foo.py
Em bar o __name__ ainda é __main__, pois é o arquivo ‘principal’
Veja os exemplos a seguir:
def imprimirAlgumaCoisa(): print("Imprime apenas se __name__ for __main__, ou seja, foo não foi importado") if(__name__ == "__main__"): imprimirAlgumaCoisa() else: print("__name__ não é __main__, foo foi importado e o __name__ é: " + __name__)
Neste caso teremos a impressão de:
Imprime apenas se __name__ for __main__, ou seja, foo não foi importado
Pois __name__ é __main__, ele é o arquivo principal rodando
Agora vejamos o que acontece se importamos o foo.py neste arquivo bar.py:
import foo print("O name em bar é: " + __name__)
Teremos a seguinte saída se rodarmos bar.py:
__name__ não é __main__, foo foi importado e o __name__ é: foo O name em bar é: __main__
Isso pelo fato explicado anteriormente, o arquivo foo foi importado
Então o nome do __main__ é alterado também
E a validação if __name__ == “__main__” só é True, quando este arquivo não for importado em outros
Conclusão
Neste artigo vimos o que if __name__ == “__main__”: faz e como podemos utilizá-la
A ideia é que o o __name__ apenas é __main__ no seu arquivo, quando ele não é importado em outros
Se for importado, o __name__ dele será o nome do arquivo, quando for chamado por este outro arquivo em que ele foi importado
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube