if __name__== "__main__" : is True?
O que é e pra que serve esse bloco de código
Para que serve essa linha de código? Vamos entender hoje como usar e pra que serve...
O código em Python é executado linha por linha, do topo para baixo, quando um arquivo é executado. No entanto, existem algumas exceções a essa regra, e uma delas é o uso do condicional if __name__ == "__main__"
.
Ao escrever um script em Python, é comum ter algumas seções de código que você deseja executar somente quando o arquivo é executado diretamente. Essa é a finalidade do if __name__ == "__main__"
.
Antes de explicar como isso funciona, vamos entender o que é a variável __name__
. Em Python, toda vez que um arquivo é executado, o interpretador Python define automaticamente uma variável especial chamada __name__
para conter o nome do arquivo.
Por exemplo, se você tem um arquivo chamado meu_script.py
, quando você o executa, o Python define a variável __name__
como "__main__"
. Se o arquivo for importado como um módulo em outro script Python, o Python definirá __name__
como o nome do arquivo.
Então, voltando ao condicional if __name__ == "__main__"
, o que isso faz é verificar se o arquivo está sendo executado diretamente pelo interpretador Python (ou seja, se __name__
é igual a "__main__"
) ou se está sendo importado como um módulo por outro arquivo Python.
Se o arquivo está sendo executado diretamente, todo o código dentro do bloco if
será executado. Se o arquivo está sendo importado como um módulo, o bloco if
não será executado.
Vamos a um exemplo simples. Suponha que você tenha o seguinte código em um arquivo chamado meu_script.py
:
def minha_funcao():
print("Executando minha_funcao")
print("Executando script")
if __name__ == "__main__":
print("Executando como script")
Se você executar meu_script.py
diretamente (por exemplo, digitando python meu_script.py
no terminal), você verá a seguinte saída:
Executando script
Executando como script
Isso ocorre porque todo o código é executado, e a variável __name__
é definida como "__main__"
, então o bloco if
é executado e a mensagem "Executando como script" é impressa na tela.
No entanto, se você importar meu_script.py
como um módulo em outro arquivo Python, por exemplo, com o código import meu_script
, você verá a seguinte saída:
Executando script
Isso ocorre porque o bloco if
não é executado, já que __name__
é definido como o nome do arquivo ("meu_script"
) e não como "__main__"
.
Em resumo, o condicional if __name__ == "__main__"
é uma maneira útil de incluir seções de código que você deseja que sejam executadas somente quando o arquivo é executado diretamente, e não quando o arquivo é importado como um módulo.
Com sempre, fique a vontade em entrar em contato pelas minhas redes sociais.