O que é e para que serve if __name__ == '__main__' em Python?

Aprenda o propósito e a funcionalidade do if name == 'main' em Python e como usá-lo corretamente em seus scripts.

O que significa if name == 'main' em Python?

Em Python, if __name__ == '__main__': é um mecanismo utilizado para determinar se um script está sendo executado diretamente ou importado como um módulo.

Como funciona?

Quando um script Python é executado, o interpretador atribui um valor à variável especial __name__. Se o script for executado diretamente, __name__ recebe o valor __main__. Se o script for importado em outro arquivo, __name__ assume o nome do módulo.

def saudacao():  
    print("Olá, mundo!")  

if __name__ == '__main__':  
    saudacao()  

Se esse script for executado diretamente, a função saudacao() será chamada. No entanto, se ele for importado em outro script, nada será executado automaticamente.

Para que serve essa estrutura?

  • Evita a execução automática de código quando o script é importado.
  • Permite reutilização de funções e classes sem interferência indesejada.
  • Facilita a organização do código, separando execução principal de funcionalidades reutilizáveis.

Exemplo prático

Crie um script chamado modulo.py:

def exibir_mensagem():  
    print("Esse código faz parte de um módulo!")  

if __name__ == '__main__':  
    print("Esse código só será executado se o script for rodado diretamente.")  

Agora, importe esse módulo em outro arquivo:

import modulo  
modulo.exibir_mensagem()  

A mensagem dentro do bloco if __name__ == '__main__': não será exibida, pois o script foi importado, e não executado diretamente.

O uso da estrutura if __name__ == '__main__' é essencial para escrever código modular e reutilizável em Python. Ele permite que um mesmo script possa ser usado tanto como um programa executável quanto como um módulo importável sem efeitos colaterais. Isso é especialmente útil para organização de projetos maiores, onde diferentes partes do código podem ser reaproveitadas sem riscos de execução não intencional.

Algumas aplicações:

  • Criação de scripts que podem ser usados como módulos reutilizáveis.
  • Organização de código para evitar execução indesejada ao importar módulos.
  • Facilidade na execução de testes e depuração de scripts.
  • Melhoria na estruturação de grandes projetos em Python.

Dicas para quem está começando

  • Use if __name__ == '__main__' para garantir que seu código principal não rode ao importar o script.
  • Se um arquivo contém funções úteis, mas não precisa ser executado diretamente, essa estrutura evita efeitos indesejados.
  • Ao dividir projetos grandes, utilize módulos e sempre teste seus scripts de forma independente.
  • Entenda a diferença entre um script executado diretamente e um importado antes de utilizar essa estrutura.
  • Faça testes criando pequenos módulos para entender como __name__ funciona na prática.

Contribuições de Pedro Vasconcellos

Compartilhe este tutorial: O que significa if __name__ ==

Compartilhe este tutorial

Continue aprendendo:

Como concatenar strings em Python

Saiba como unir strings em Python utilizando diferentes métodos como operador +, f-strings e join().

Tutorial anterior

Como usar if, elif e else no Python

Aprenda como utilizar if, elif e else em Python para criar fluxos condicionais eficientes em seus programas.

Próximo tutorial