转自:http://www.weidianyuedu.com/
模块循环依赖
在Python中使用import导入模块的时候,有的时候会产生模块循环依赖,例如下面的例子,module_x模块和module_y模块相互依赖,运行module_y.py的时候就会产生错误。
module_x.py
import module_y
def inc_count():
module_y.count += 1
print module_y.count
module_y.py
import module_x
count = 10
def run():
module_x.inc_count()
run()
其实,在编码的过程中就应当避免循环依赖的情况,或者代码重构的过程中消除循环依赖。
当然,上面的问题也是可以解决的,常用的解决办法就是把引用关系搞清楚,让某个模块在真正需要的时候再导入(一般放到函数里面)。
对于上面的例子,就可以把module_x.py修改为如下形式,在函数内部导入module_y:
module_x.py
def inc_count():
import module_y
module_y.count += 1