导入不起作用
问题描述
我有两个文件,分别是a.py
和b.py
。
import xxx
from b import *
在b.py中,我们有一个需要module xxx
的函数。
现在,当从a.py
调用b.py
中的函数时,它找不到模块xxx
。
为什么会这样?这里有什么解决方案?
由于某些原因,我无法在b.py
中执行import xxx
。
MCV:
a.py
import xxx
from b import *
fun()
b.py
def fun():
xxx.dosomething()
错误:
Global name xxx not defined
解决方案
在Python中,所有模块都有自己的全局命名空间,并创建包含所有内置名称的命名空间,并且模块不与其他模块共享它仅内置命名空间是通用的,可用于所有模块,当您将其添加到模块全局命名空间而不是内置命名空间时
IMPORT语句做两件事:
如果请求的模块尚不存在,则执行导入文件中的代码
Two使其可以作为一个模块使用。后续导入语句将跳过第一步。
要点是,模块中的代码将只执行一次,无论它从各种其他模块导入多少次。
SOURCE
相关文章