A função principal do Python é executada apenas quando o programa é executado como um programa Python. Como você sabe, também podemos importar um programa Python como um módulo; nesse caso, o método principal do Python não deve ser executado.
Função principal do Python
A função principal é o ponto de entrada de qualquer programa. No entanto, o interpretador Python executa o código do arquivo fonte sequencialmente e não chama nenhum método se ele não fizer parte do código. Mas, se estiver diretamente no código, será executado quando o arquivo for importado como um módulo. É por isso que existe uma técnica especial para definir o método principal em um programa Python, para que ele seja executado apenas quando o programa for executado diretamente e não quando for importado como um módulo. Vamos ver como definir a função principal do Python em um programa simples. python_main_function.py
print("Hello")
print("__name__ value: ", __name__)
def main():
print("python main function")
if __name__ == '__main__':
main()
-
Quando um programa Python é executado, o interpretador Python começa a executar o código dentro dele. Ele também define alguns valores implícitos de variáveis, sendo um deles
__name__
, cujo valor é definido como__main__
. -
Para a função principal do Python, temos que definir uma função e então usar a condição
if __name__ == '__main__'
para executar essa função. -
Se o arquivo fonte do Python for importado como módulo, o interpretador do Python define o valor de
__name__
como o nome do módulo, então a condição if retornará falso e o método principal não será executado. -
O Python nos fornece flexibilidade para manter qualquer nome para o método principal, no entanto, é uma boa prática nomeá-lo como método principal(). O código abaixo está perfeitamente correto, porém não é recomendado.
def main1(): print("função principal do python") if __name__ == '__main__': main1()
Abaixo, a imagem mostra a saída quando o arquivo de origem python_main_function.py
é executado.
Função principal em Python como módulo
Agora, vamos usar o arquivo de origem em Python acima como um módulo e importá-lo em outro programa. python_import.py
import python_main_function
print("Done")
Agora, quando o programa acima é executado, a seguinte saída é produzida.
Hello
__name__ value: python_main_function
Done
Observe que as duas primeiras linhas são impressas a partir do arquivo de origem python_main_function.py
. Observe que o valor de __name__
é diferente, portanto, o método principal não é executado. Observe que as instruções do programa em Python são executadas linha por linha, portanto, é importante definir o método main()
antes da condição if
para executar o método principal. Caso contrário, você receberá um erro como NameError: name 'main' is not defined
. Isso é tudo sobre a função principal em Python. Referência: Documentação do Python
Source:
https://www.digitalocean.com/community/tutorials/python-main-function