目录
1、问题描述
2、原因
3、示例
4、解决办法
编写python代码,运行中出现了:‘most likely due to a circular import ’ 这样的报错。
循环引用问题,即A引用了B,B又引用了A,造成循环引用的问题。
1)延迟导入:即将 from xxx import yyy 放到函数或类的内部,从而使其作用域变成局部的。但是这样可能会对性能有些影响。
如下图将import TestA放到函数内部,问题得到解决:
2)直接导入模块名,通过模块调用其中的函数
将 from xxx import yyy 转换成 import xxx; xxx.yyy 的形式 。
修改为直接引入模块,在函数内通过 模块.函数 调用解决 :
3)重新设计代码结构,将代码和并或者分离
方法1)和2)以上两种方式都是治标不治本的,只能说能够用,但是并不符合规范。
最好的办法应该是从代码布局入手,比如合并或分离循环引用的部分,合并就是将代码放到一个文件里面,自然就不用循环引用了,分离的话就是将循环引用的部分放到第三个py文件中,这样也可以。