Soy nuevo en Python, por lo que esta es probablemente una simple pregunta de alcance. El siguiente código en un archivo (módulo) de Python me confunde un poco:
if __name__ == '__main__':
x = 1
print x
En otros idiomas en los que he trabajado, este código arrojaría una excepción, ya que la x
variable es local a la if
declaración y no debería existir fuera de ella. Pero este código se ejecuta e imprime 1. ¿Alguien puede explicar este comportamiento? ¿Todas las variables creadas en un módulo son globales / están disponibles para todo el módulo?
if
declaración anterior no es verdadera (es decir, no lo__name__
es , por ejemplo, cuando importa el módulo en lugar de ejecutarlo en el nivel superior), nunca se habrá vinculado, y la declaración posterior arrojará un .'__main__'
x
print x
NameError: name 'x' is not defined