我尝试在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
有人可以帮忙吗?
答案 0 :(得分:2)
这是circular imports的情况。 fileB正在导入fileC,它正在导入fileB。后一个导入对一个空的,未初始化的模块对象感到满意。
通常,您不想使用循环导入。