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?
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.