我有一些问题,在理解python如何导入模块时,这看起来像是一些空白。例如,我有一个称为somemodule的模块,它有两个子模块a.pyb.py
a.py的内容:

from somemodule.b import b

def a():
    b()
    print "I'am A"

内容b.py
from somemodule.a import a

def b():
    a()
    print "I'am B"

现在如果我想调用任何模块,我会得到ImportError
importorror:无法导入名称b
我怎么了?

最佳答案

你有一个循环引用您导入模块A,然后导入模块B。但模块B从模块A导入函数A。但在尝试导入时,A尚未定义。请记住,Python import有效地执行模块。
解决方案似乎是移动函数定义,使它们出现在导入之前。
或者,正如@lazyr建议的那样,将import语句移到函数内部,以便在调用函数时进行导入,而不是在模块导入时。

09-11 19:53
查看更多