O que é a função principal do Python?
A função principal do Python é o ponto de partida de qualquer programa. Quando o programa é executado, o interpretador python executa o código sequencialmente. A função principal é executada apenas quando é executada como um programa Python. Ele não executará a função principal se importado como um módulo.
Qual é a função def main () em Python? Para entender isso, considere o seguinte código de exemplo
def main():print ("hello world!")print ("Guru99")
Aqui, temos duas peças de impressão - uma é definida dentro da função principal que é "Hello World" e a outra é independente, que é "Guru99". Quando você executa a função def main ():
- Apenas "Guru99" imprime
- e não o código "Hello World".
É porque não declaramos a função de chamada "if__name __ ==" __main__ ".
É importante que depois de definir a função principal, você chame o código por if__name __ == "__main__" e execute o código, só então você receberá a saída "hello world!" no console de programação. Considere o seguinte código
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 é impresso neste caso.
Aqui está a explicação,
- Quando o interpretador Python lê um arquivo-fonte, ele executa todo o código encontrado nele.
- Quando o Python executa o "arquivo de origem" como o programa principal, ele define a variável especial (__name__) para ter um valor ("__main__").
- Quando você executa a função principal em python, ela lê a instrução "if" e verifica se __name__ é igual a __main__.
- Em Python, "if__name __ ==" __main__ " permite que você execute os arquivos Python como módulos reutilizáveis ou programas autônomos.
A variável __name__ e o módulo Python
Para entender a importância da variável __name__ no método da função principal do Python, considere o seguinte código:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Agora considere, o código é importado como um módulo
import MainFunctionprint("done")
Aqui está a explicação do código:
Como C, Python usa == para comparação enquanto = para atribuição. O interpretador Python usa a função principal de duas maneiras
corrida direta:
- __name __ = __ main__
- if statement == True, e o script em _main_ será executado
importar como um módulo
- __name __ = nome do arquivo do módulo
- if statement == false, e o script em __main__ não será executado
Quando o código for executado, ele verificará o nome do módulo com "if". Este mecanismo garante que a função principal seja executada apenas como execução direta e não quando importada como um módulo.
Os exemplos acima são códigos Python 3, se você quiser usar Python 2, considere o seguinte código
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
No Python 3, você não precisa usar if__name. O código a seguir também funciona
def main():print("Hello World!")main()print("Guru99")
Nota: Certifique-se de que após definir a função principal, você deixe algum recuo e não declare o código logo abaixo da função def main (): caso contrário, ocorrerá um erro de recuo.