分析解决python循环导入报错问题

分析解决python循环导入报错问题

一、导致循环导入的原因
#m1
from m2 import y
x=1

#m2
from m1 import x
y=10

原因:因为python解释器是从上往下解释,在执行from命令之前还没有加载x , y,所以当执行m1文件的时候,找到不y,x

二、解决方案
1、第一种方式
#m1
x=1
from m2 import y
print(x)
print(y)
#m2
y=10
from m1 import x

执行m1结果:
		1
    	10
        1
        10
		
第二种方法
#m1
def foo():
	from m2 import y
    print(y)
x=1
foo()

#m2
def boo():
    from m1 import x
    print(x)
y=10
boo()

执行m1函数:
	10
    1
    10

第三种方法(解决打印重复值)
#m1
def foo():
	from m2 import y
    print(y)
x=1
if __name__=="__main__"
	foo()

#m2
def boo():
    from m1 import x
    print(x)
y=10
boo()
执行m1文件结果:
	1
    10
总结:

​ 循环导入出现的原因是因为自定义的文件循环导入,在导入的过程中,需要的变量没有被加载,所以我们可以将可以哪里用文件,就在哪里导入模块,并将导入模块放到函数中

posted @ 2019-06-05 16:40  emos  阅读(818)  评论(0编辑  收藏  举报