一句话解释这个问题: 在当前模块执行import的这些模块中, 导入了当前模块未创建的对象

很啰嗦的解释这个问题:

我们知道,程序是从上至下运行的.
python程序在import中去创建各个模块的名字空间, 且本模块未被执行的代码所代表的对象是没有被创建的.
当其他模块引用了当前模块未被创建的对象时就会出现错误, 这就是循环导入.

解决方法

  1. 等…..当前模块的对象创建完成后再导入有循环导入冲突的模块
  2. 两个有循环导入冲突的模块都互相导入对方的模块, 不导入模块里面的对象