猿问

Python中的循环导入依赖项

Python中的循环导入依赖项

假设我有以下目录结构:

a\
    __init__.py
    b\
        __init__.py
        c\
            __init__.py
            c_file.py
        d\
            __init__.py
            d_file.py

a包中__init__.pyc导入包。但是c_file.py进口a.b.d

程序失败,说尝试导入b时不存在。(它确实不存在,因为我们正在进口它。)c_file.pya.b.d

如何解决这个问题呢?


月关宝盒
浏览 535回答 3
3回答

胡说叔叔

如果一个取决于c和c取决于a,那么它们实际上不是同一个单位吗?你应该仔细研究为什么你将a和c分成两个包,因为要么你有一些代码你应该拆分成另一个包(使它们都依赖于那个新的包,而不是彼此),或者你应该合并它们成一个包。

开满天机

我想知道这几次(通常在处理需要彼此了解的模型时)。简单的解决方案就是导入整个模块,然后引用您需要的东西。所以不要这样做from models import Student在一个,和from models import Classroom在另一方面,就这样做import models在其中一个,然后调用models.Classroom当你需要它。
随时随地看视频慕课网APP

相关分类

Python
我要回答