首页 > 其他 > 详细

模块循环导入问题

时间:2019-06-27 23:06:02      阅读:94      评论:0      收藏:0      [点我收藏+]
#创建一个m1.py
print('正在导入m1')
from m2 import y
x = 'm1'
----------------------------------------
#创建一个m2.py
print('正在导入m2')
from m1 import x
y='m2'
----------------------------------------
#创建一个run.py
import m1
# 会报错
# 先执行run.py--->执行import m1,开始导入m1并运行其内部代码--->打印内容"正在导入m1"--->执行from m2 import y 开始导入m2并运行其内部代码--->打印内容“正在导入m2”--->执行from m1 import x,由于m1已经被导入过了,所以不会重新导入,所以直接去m1中拿x,然而x此时并没有存在于m1中,所以报错
-----------------------------------------
# 直接执行m1.py
# 会报错
# 执行m1.py,打印“正在导入m1”,执行from m2 import y ,导入m2进而执行m2.py内部代码--->打印"正在导入m2",执行from m1 import x,此时m1是第一次被导入,执行m1.py并不等于导入了m1,于是开始导入m1并执行其内部代码--->打印"正在导入m1",执行from m1 import y,由于m1已经被导入过了,所以无需继续导入而直接问m2要y,然而y此时并没有存在于m2中所以报错
-----------------------------------------
# 解决方法:
# 方法一:导入语句放到最后
# 方法二:导入语句放到函数中

模块循环导入问题

原文:https://www.cnblogs.com/zyyhxbs/p/11100038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!