Eu sou novo no Python, então essa é provavelmente uma questão de escopo simples. O código a seguir em um arquivo Python (módulo) está me confundindo um pouco:
if __name__ == '__main__':
x = 1
print x
Em outros idiomas em que trabalhei, esse código geraria uma exceção, pois a xvariável é local para oif instrução e não deveria existir fora dela. Mas esse código é executado e imprime 1. Alguém pode explicar esse comportamento? Todas as variáveis criadas em um módulo são globais / disponíveis para todo o módulo?
ifafirmação acima não é verdadeira (ou seja,__name__é não'__main__', por exemplo, quando você importa o módulo em vez de executá-lo de nível superior), entãoxnunca foram ligados, e da subsequenteprint xdeclaração jogará aNameError: name 'x' is not defined.