Função principal do Python

Neste tutorial, aprenderemos como usar o atributo __name__ de um programa Python para executá-lo dinamicamente em diferentes contextos.

Qual é a função main () em Python?

Algumas linguagens de programação têm uma função especial chamada, main()que é o ponto de execução de um arquivo de programa. O interpretador Python, entretanto, executa cada linha em série a partir do início do arquivo e não tem main()função explícita .

Python oferece outras convenções para definir o ponto de execução. Um deles está usando a main()função e a propriedade __name__ de um arquivo python.

O que é __name__ em Python?

A variável __name__ é uma variável Python interna especial que mostra o nome do módulo atual.

Ele possui valores diferentes dependendo de onde executamos o arquivo Python. Vejamos um exemplo.

Executando arquivo Python como um script

Suponha que temos um arquivo Python chamado helloworld.py com o seguinte conteúdo:

 print(__name__) 

Se executarmos helloworld.py na linha de comando, ele será executado como um script Python. Podemos executar o programa Python usando o seguinte comando:

$ python helloworld.py

Quando executamos o programa como um script, o valor da variável __name__ é definido como __main__. Portanto, a saída do seguinte programa será:

 __a Principal__ 

Executar arquivo Python como um módulo

Também podemos executar um arquivo Python como módulo. Para isso, temos que importar este arquivo para outro programa Python. Vejamos um exemplo.

Suponha que temos um arquivo Python chamado main.py no mesmo diretório do arquivo heloworld.py. Possui o seguinte conteúdo:

 import helloworld 

Quando executamos este arquivo, teremos a seguinte saída:

 Olá Mundo 

Aqui, podemos ver que a importação de um módulo também executa todo o código no arquivo do módulo.

Mas, podemos ver que em vez de exibir __main__, o programa exibe o nome do módulo, ou seja, helloworld.

É porque, no contexto de execução de um arquivo Python como um módulo, o nome do próprio módulo é atribuído à variável __name__.

Usando if condicional com __name__

Agora que entendemos como a variável __name__ recebe valores, podemos usar a ifcláusula condicional para executar o mesmo arquivo Python de maneira diferente em contextos diferentes.

Vejamos um exemplo.

Suponha que alteremos o conteúdo do arquivo helloworld.py para o seguinte:

 def main(): print("Hello World") if __name__=="__main__": main() 

Agora, quando o executarmos como um script por meio da linha de comando, a saída será:

 Olá Mundo 

No entanto, quando o executamos como um módulo importando-o no arquivo main.py , nenhuma saída é exibida, pois a main()função não é chamada.

Aqui, criamos uma main()função personalizada no arquivo helloworld.py . Ele é executado apenas quando o programa é executado como um script independente e não como um módulo importado.

Esta é a maneira padrão de definir explicitamente a main()função em Python. É um dos casos de uso mais populares da variável __name__ de um arquivo Python.

Artigos interessantes...