如何解决循环导入问题

时间:2011-06-27 03:27:08

标签: python import

我有一个模块可以跟踪所有使用日志,(usage.py)

然后我创建了另一个绘制图表的模块,(chart.py) 我想跟踪使用我的chart.py的人,因此,我将usage.py导入我的图表。

到目前为止,一切似乎都很酷。

现在,我想在usage.py中显示用法图表,因此,我尝试将chart.py导入usage.py。

Kaboom! 它给了我这个错误: -

ImportError:无法导入名称图表。

无论如何要解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:3)

这些通常通过将共享组件重构为第三个模块来解决,每个原始组件都会导入该新模块。

答案 1 :(得分:2)

您还可以做的是:

# File n°1, toto.py
from tata import tataClass

    class totoClass:
       def __init__(self,):
           # here I can use data from tataClass

# File n°2, tata.py
    def method_using_toto():
        from toto import totoClass
        # here I can use data from totoClass

因此,您必须非常谨慎地处理包含

的位置