无法在Python </myclass>中导入名称<myclass>

时间:2015-02-09 13:46:30

标签: python

我尝试在python中导入一个类但是我遇到了一些麻烦,可能是因为循环导入但我不知道如何解决我的问题。

我的追溯中出现的循环(packageA包含三个文件:A,B和C):

**In main.py**    
from packageA import fileA
**In fileA.py:**
from packageA import fileB    <- 
**In fileB.py:**
from packageA import fileC
**In fileC.py:**
from fileB import ClassB      <-

我明白了:

ImportError: cannot import name ClassB

起初,我认为我可以删除&#34;从fileC导入ClassB&#34; ,因为之前已经导入了整个fileB。但如果我这样做,我会得到另一个错误:

NameError: global name 'ClassB' is not defined

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

这是circular imports的情况。 fileB正在导入fileC,它正在导入fileB。后一个导入对一个空的,未初始化的模块对象感到满意。

通常,您不想使用循环导入。