不同文件中变量作用域的问题

现在有两个文件:

a.py:

x=1
from b import *
printx()
b.py:

def printx():
    print(x)

在命令行中调用$ python3 a.py会有NameError,这里有点不理解,直接调用a.py的时候,x不能算全局变量吗?根据LEGB规则,为什么会出错呢?

阅读 2.2k
1 个回答

x只是a文件内可见呀
a文件中import了b只是使b文件中的方法printx对a文件可见,可以调用它,并没有改变x对b文件的不可见性。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题