如何解决循环导入问题

1 投票
2 回答
8058 浏览
提问于 2025-04-16 20:21

我有一个模块用来记录所有的使用日志,叫做(usage.py)。

然后我又创建了一个模块用来画图,叫做(chart.py)。我想要记录使用我这个chart.py的人,所以我在chart.py里引入了usage.py。

到这里一切都很顺利。

现在,我想在usage.py里显示使用情况的图表,所以我尝试在usage.py里引入chart.py。

结果出问题了!

它给我报了这个错:-

ImportError: cannot import name chart.

有没有办法解决这个问题呢?

提前谢谢你。

2 个回答

3

你还可以做以下事情:

# 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

所以你在包含文件的位置上要非常小心。

3

通常,这种问题可以通过把共享的部分重新整理到一个新的模块里来解决,然后每个原来的模块都去引入这个新模块。

撰写回答