2015-02-09 58 views
0

我嘗試在python中導入一個類,但由於循環導入導致一些問題,但我不知道如何解決我的問題。不能在Python中導入名稱<MyClass>

出現在我的回溯循環(程序包A包含三個文件: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 

起初,我以爲我可以刪除從fileC導入ClassB「」,因爲整個fileB已經被導入過。但是,如果我努力讓我得到另一個錯誤是:

NameError: global name 'ClassB' is not defined 

有人能幫忙嗎?

回答

2

這是circular imports的情況。 fileB正在導入fileC,它正在導入fileB。後者導入滿足於一個空的,未初始化的模塊對象。

一般而言,您不想使用循環導入。