(2018-04-07.Python从Zero到One)一、python高级编程__1.2.2循环导入

上一篇文章为:→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

(2018-04-07.Python从Zero到One)一、python高级编程__1.2.2循环导入_第1张图片
day12_其他知识-01.png

2. 怎样避免循环导入

  1. 程序设计上分层,降低耦合
  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()

下一篇文章为:→1.2.3作用域

你可能感兴趣的:((2018-04-07.Python从Zero到One)一、python高级编程__1.2.2循环导入)