É bem possível que, em algum momento, já tenhamos visto uma linha de código parecida com essa em algum lugar. Mas o que ela significa? Permita-me tentar explicar isso. Mas antes, uma explicação sobre os módulos.
Um módulo é qualquer arquivo Python com definições e instruções a serem executadas para agirem como se fossem um programa. Por regra, todos os módulos podem ser importados para serem usados por outros arquivos através do comando import <nome do arquivo>.
Primeiro observe o código do arquivo ex1.py:
Se eu executar esse código no VSCode, ou na IDE, ou no terminal de comando, será mostrado na tela o resultado da função somatorio: 5. Agora observe o arquivo ex2.py, que está na mesma pasta de ex1:
A primeira coisa que vai acontecer ao executar ex2 será o arquivo importar e executar o módulo ex1. Mas, ao invés de exibir o resultado 5, como no exemplo anterior, um resultado diferente será retornado:
Por que isso acontece?
__name__ é uma das variáveis internas do sistema que são definidas ao executar qualquer arquivo Python. Quando executamos um arquivo diretamente na linguagem, definimos que tal arquivo será o programa principal. Por isso que, nesse caso, __name__ recebe o valor __main__. Porém, quando importamos tal arquivo para ser utilizado por outro programa principal, __name__ receberá como valor o nome do arquivo.
Desse jeito, podemos faazer com que nossos códigos tenham dois comportamentos diferentes: um quando o arquivo onde eles estão forem executados diretamente e outro quando forem importados e executados por outro arquivo.
Espero ter ajudado.
Daniel Bicalho
22/03/2021 17:36