循环导入的最好的解决方法是从架构上优化,即调整模块和模块成员变量的设计.一个好的原则是:可导出的成员变量,都不应该依赖于导入进来的成员变量. 但是在业务开发的过程中,总会遇到通过架构层面解决不了的导入问题,这时候就只能通过语言层面来解决了. 目录结构(下面的案例的目录结构都是这样的): root.py /pack1 __init__.py module_a.py /pack2 __init__.py module_b.py module_c.py module_d.py 循环导入例子 首先看一下…