Blog

Postado em em 30 de outubro de 2021

if name main no Python, o que Significa Isso?

Na aula de hoje eu quero te ensinar o que significa a estrutura if name main (if__name__==”__main__”) no Python e como ela funciona!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

O que Significa if name main (If__name__==”__main__”)

Você provavelmente já deve ter visto isso em algum código em Python não é mesmo?

Hoje eu quero te mostrar o que significa esse código para que você não fique perdido e saiba como utilizar da forma correta principalmente na importação de arquivo no Python!

If__name__==“__main__”

Para essa aula nós vamos utilizar o código da aula de como obter cotações de moedas no Python, mas já vamos deixar os arquivos disponíveis para que você possa acompanhar.

Aqui nós temos o código de pegar_cotacao.

import requests


def pegar_cotacao_atual(moeda_origem, moeda_destino):
    with open("codigos_moedas.txt", "r") as arquivo:
        codigos_moedas = arquivo.read().split("\n")
    if moeda_origem not in codigos_moedas:
        print("Moeda de Origem não encontrada")
    if moeda_destino not in codigos_moedas:
        print("Moeda de Destino não encontrada")
    link = f"https://economia.awesomeapi.com.br/last/{moeda_origem}-{moeda_destino}"
    requisicao = requests.get(link)
    if requisicao:
        cotacao = requisicao.json()[moeda_origem + moeda_destino]["bid"]
        return cotacao
    else:
        print("Combinação não existente na API")
        return ""


if __name__ == "__main__":
    print(pegar_cotacao_atual("EUR", "BRL"))
    print("lira é doidao")

E nesse código você já vai notar que nós temos a estrutura if __name__ == “__main__” com alguns prints.

Daqui a pouco você vai entender por que eles estão ai e como eles vão funcionar.

from pegar_cotacao import pegar_cotacao_atual

with open("precos.txt", "r") as arquivo:
    lista_precos = arquivo.read().split("\n")

for linha in lista_precos:
    mercadoria, valor, moeda = linha.split(",")
    cotacao = pegar_cotacao_atual(moeda, "BRL")
    print(f"{mercadoria} tá custando R${float(cotacao) * float(valor):,.2f} hoje")

E aqui nós temos o nosso código principal que vai importar arquivo no Python, que é exatamente o arquivo pegar_cotacao.

Quando nós fazemos a importação de um arquivo você vai notar que ao executar seu código, ele vai executar esse arquivo importado, mas só vai exibir o que está dentro do arquivo sem o que está dentro da estrutura.

O conteúdo dentro da estrutura if__name__==”main” só vai ser executado quando você rodar o código do arquivo, caso contrário o que tem dentro dessa estrutura não será executado.

Então nesse exemplo se você rodar o código pegar_cotacao você vai visualizar os 2 prints que estão dentro da estrutura.

Agora se você executar o código main.py vai notar que o que está dentro da estrutura não aparece no resultado.

Agora vamos a explicação porque isso funciona e como o Python identifica isso.

Ao rodar qualquer arquivo em Python ele automaticamente antes de tudo, define a variável __name__, que é uma variável reservada do Python.

Então quando fazemos uma execução direta, executando no próprio arquivo ele atribui o valor “__main__” para essa variável.

Isso quer dizer que se estamos executando o arquivo diretamente ele recebe esse valor, e então vamos executar o que está dentro da nossa estrutura do if, caso contrário ele vai receber o nome do arquivo.

Então ao fazermos a comparação de __name__ = “__main__” ela será falsa e, portanto, não vai executar o conteúdo dessa estrutura.

Por esse motivo quando executamos o código diretamente no arquivo ele lê todo o conteúdo da estrutura e quando executamos através da importação do arquivo ele não lê o que está na estrutura.

Dessa forma o valor atribuído a variável __name__ é diferente de “__main__”!

Conclusão de If main name no Python

Nessa aula eu te mostrei o que significa o if__name__==”__main__” no Python e como você pode utilizar essa estrutura dentro do seu código para executar ou não uma parte específica do código em outro arquivo.

Agora que você já sabe como funciona não vai ter mais dúvidas quando visualizar essa estrutura em outros códigos e vai saber exatamente o que ela faz.

Você pode testar isso nos seus próprios códigos para verificar o que vai rodar ou não dentro dessa estrutura de acordo com a execução do código direto ou da execução através da importação do arquivo!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso gratuito?


Quer sair do zero em Excel e virar uma referência na sua empresa? Matricule-se agora mesmo no Excel Impressionador!