Python导入问题

Den*_*nin 3 python import

我有一些问题,在我理解python如何导入模块时看起来像一些空格.例如我有模块,其被称为somemodule具有两个子模块a.pyb.py.


a.py的内容:

from somemodule.b import b

def a():
    b()
    print "I'am A"
Run Code Online (Sandbox Code Playgroud)

内容b.py

from somemodule.a import a

def b():
    a()
    print "I'am B"
Run Code Online (Sandbox Code Playgroud)


现在,如果我想调用我得到的任何模块ImportError:

ImportError:无法导入名称b

我怎么了?

Dav*_*nan 6

你有一个循环参考.导入模块a然后导入模块b.但模块b从模块a导入函数a.但在它试图这样做的时候,还没有定义.请记住,Python导入有效地执行模块.

解决方案似乎是移动函数定义,以便它们出现在导入之前.

或者,正如@lazyr建议的那样,将import语句移动到函数内部,以便在调用函数时进行导入,而不是在模块导入时进行.