Il y a maintenant deux fichiers :
a.py:
x=1
from b import *
printx()
b.py:
def printx():
print(x)
Lors de l'appel de $ python3 a.py
depuis la ligne de commande, il y aura une NameError. Je ne comprends pas ici Lorsque vous appelez directement a.py, x n'est-il pas considéré comme une variable globale ? D'après les règles du LEGB, pourquoi ça se passe mal ?
x n'est visible que dans le fichier a
L'importation du fichier a rend uniquement la méthode printx dans le fichier visible pour le fichier a. Vous pouvez l'appeler, et cela ne change pas l'invisibilité du fichier x en fichier b. .