模块的循环导入问题

m1、m2为被导入模块,run1为执行文件。

m1.py

print('正在执行m1.py')

from m2 import x

y = 'm1'

m2.py

print('正在执行m2.py')

from m1 import y

x = 'm2'

run1.py

# 模块的循环导入问题

import m1

运行结果:

不管是import。。。 还是from。。。import。。。,它们只在首次导入模块时,才会执行文件代码。

run1在导入m1的时候是首次导入:

1、造一个m1的名称空间,

2、开始执行m1.py,首次导m2,造一个m2的名称空间,运行m2.py里面的代码

3、问m2名称空间里面要一个x的名字

猜你喜欢

转载自www.cnblogs.com/zhangrenguo/p/12562443.html