Ainda estou com dúvida nisso: Main == Name. O que acontece se eu não usar ele no código? Qual a diferença ao executar cada um com e sem ele?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Ainda estou com dúvida nisso: Main == Name. O que acontece se eu não usar ele no código? Qual a diferença ao executar cada um com e sem ele?
Olá Marconi, tudo bem?
Ao ser executado, antes de seguir as instruções no script do arquivo o interpretador do Python cria algumas variáveis globais. Se o módulo executado, por exemplo uma função esteja sendo executado no mesmo arquivo em execução, a variável especial name recebe o nome de "main".
Se, ao invés disso, o módulo (função como exemplo estiver sendo executado através de outro arquivo, ou seja, a função foi importada, a variável name receberá o nome do módulo.
Digamos que temos dois arquivos:
main.py
def hello_world():
print("Hello world")
if __name__ == "__main__":
hello_world()ao executarmos: $ python main.py
veremos no terminal: Hello world
agora outro arquivo: script.py
from main import hello_world
def function():
print("Outro módulo")
if __name__ == "__main__":
function()ao executarmos: $ python script.py
veremos: Outro módulo
A função hello_world não será executada, somente se for chamada no módulo script.py
Espero ter ajudado.