在我们的项目中,我们使用以下模块进行级别“控制”:'grid','gridcell','combo'等。网格模块导入gridcell模块,因为网格由单元格组成,而任何单元格都可以在其中包含组合。所以最初我们开始在这些类中使用'from ... import ...'语句,方法如下:
#grid.py
from controls.gridcell import cell
#gridcell.py
from controls.combo import combo
但是在我们开始使用网格作为组合内容之前,这是可以的。一旦我们开始这样做,我们就需要将'from grid import grid'语句添加到'combo.py'中。执行此操作后,我们得到一个导入异常:
from controls.gridcell import gridcell
ImportError: Cannot import name gridcell
编辑:
我也试过'import ... as ...'并得到以下错误:
import controls.gridcell as gridcell
AttributeError: 'module' object has no attribute 'gridcell'
我已阅读了几篇文章,我发现的有关如何解决这个问题的所有内容都是使用'import'语句而不是,例如:
#grid.py
import controls.gridcell
#gridcell.py
import controls.combo
#combo.py
import controls.grid
但这导致我们使用'controls.gridcell.cell','controls.combo.combo','controls.grid.grid'等全名。
所以我的问题是 - 有没有其他方法可以做到这一点(所以可以使用更短的名字)或者这是如何解决这个问题的唯一方法?
对不起,如果我错过了什么
Thanx to all
答案 0 :(得分:9)
import controls.gridcell as gridcell
等。等等。
答案 1 :(得分:2)
您也可以将导入移动到函数中。
def foo():
from controls.gridcell import cell
from controls.combo import combo
如果您有init()
功能,这可能很方便。