记录前段时间学习 Flask 时遇到的循环导入问题python
栗子很简单, 如今有a.py, b.py, c.py 三个包, b.py 中导入 a.py, c.py 中导入 b.py , a.py 中导入c.py, 而后随便以一个文件为入口执行程序编程
假如以 a.py 做为程序入口, 大概就像下面这样函数
import c def test(): print('this a') c.test()
如今执行a.py 就会报出导入错误(相似下面这个), 详细介绍在 core-python (python 核心编程) 中有介绍, 有时间能够看一下学习
ImportError: cannot import name XX
(直接最实在的方法) 将产生循环的包, 放在函数里进行调用, 好比刚才的 a.py 能够改为这样this
def test(): print('this a') def run(): import c c.test()
若是了解程序的执行顺序的话, 也能够使用调整 import 顺序的方法解决, 可是我尝试的结果是: 这并不能100% 的解决问题code
(终极解决方案) 要不仍是重构吧 (逃..)class