Je suis nouveau sur Python, c'est donc probablement une question de portée simple. Le code suivant dans un fichier Python (module) m'embrouille légèrement:
if __name__ == '__main__':
x = 1
print x
Dans d'autres langages dans lesquels j'ai travaillé, ce code lèverait une exception, car la xvariable est locale à l' ifinstruction et ne devrait pas exister en dehors d'elle. Mais ce code s'exécute et imprime 1. Quelqu'un peut-il expliquer ce comportement? Toutes les variables créées dans un module sont-elles globales / disponibles pour l'ensemble du module?
ifdéclaration ci-dessus n'est pas vraie (c'est-à-__name__dire qu'elle ne l' est pas'__main__', par exemple lorsque vous importez le module au lieu de l'exécuter au niveau supérieur), alors ellexn'aura jamais été liée et laprint xdéclaration suivante jettera unNameError: name 'x' is not defined.