Entendendo a Função Main do Python: Guia Prático para def main()
O que é a Função Main do Python?
A função main em Python marca o ponto de entrada de um programa. Quando um script é executado diretamente, o interpretador executa o código sequencialmente. Código dentro de def main() roda apenas se o script for o módulo principal, não quando importado em outro lugar.
Vamos percorrer um exemplo claro.
Exemplo 1: Definindo main()
def main():
print("Olá Mundo!")
print("Guru99")
Executar este arquivo imprime apenas Guru99. A linha Olá Mundo! permanece dentro de main() e nunca é chamada.
Para executar main() quando o script roda como programa principal, você deve protegê-lo com:
if __name__ == "__main__":
main()
Agora o script se comporta como esperado.
Exemplo 2: Proteção Adequada
def main():
print("Olá Mundo!")
if __name__ == "__main__":
main()
print("Guru99")
Quando você executa este arquivo, o console exibe:
Olá Mundo!
Guru99
Por que isso funciona? O interpretador define a variável especial __name__ como "__main__" quando um arquivo é executado diretamente. A proteção verifica essa condição antes de chamar main().
O Papel de __name__ e Módulos
Entender __name__ é essencial para escrever código reutilizável.
def main():
print("olá mundo!")
if __name__ == "__main__":
main()
print("Guru99")
print("Valor na variável embutida name é: ", __name__)
Executando o arquivo diretamente imprime as duas mensagens e __name__ como "__main__". Se você importar este script como módulo:
import funcaomain
print("feito")
você verá apenas feito e __name__ refletirá o nome do módulo, então main() não executa automaticamente.
Em resumo:
- Execução direta:
__name__ == "__main__"→main()roda. - Importação como módulo:
__name__ != "__main__"→main()é pulado.
Python 3 não requer if __name__ == "__main__": para scripts simples, mas usar a proteção é uma boa prática, especialmente quando o arquivo pode ser reutilizado. Em Python 2, a sintaxe permanece a mesma, mas as declarações print diferem:
def main():
print "Olá Mundo!"
if __name__ == "__main__":
main()
print "Guru99"
Em Python 3, você também pode escrever:
def main():
print("Olá Mundo!")
main()
print("Guru99")
Lembre-se: sempre mantenha a indentação adequada após a linha def main(): para evitar erros.
python
- Funções Lambda em Python: Guia Prático para Funções Anônimas
- Generators em Python: Iteração Eficiente e Casos de Uso Avançados
- Closures em Python Explicados: Como Funções Aninhadas Capturam Variáveis
- Dominando Decorators em Python: Aprimore Funções com Técnicas de Especialista
- Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
- Python len(): Guia Prático para Medir Comprimento de Objetos
- Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas
- Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas
- Função round() em Python Explicada com Exemplos Práticos
- Dominando a Função map() do Python: Sintaxe, Exemplos e Boas Práticas