上一篇文章为:→1.2.1import导入模块
循环导入
1. 什么是循环导入
a.py
from b import b
print '---------this is module a.py----------'
def a():
print("hello, a")
b()
a()
b.py
from a import a
print '----------this is module b.py----------'
def b():
print("hello, b")
def c():
a()
c()
运行python a.py
2. 怎样避免循环导入
- 程序设计上分层,降低耦合
- 导入语句放在后面需要导入时再导入,例如放在函数体内导入
将 import 语句移到函数的内部,只有在执行到这个模块时,才会导入相关模块。
比如 a.py修改为
print '---------this is module a.py----------'
def a():
from b import b
print("hello, a")
b()
a()
b.py修改为
print '----------this is module b.py----------'
def b():
print("hello, b")
def c():
from a import a
a()
c()