无聊测试了下,发现:
1.python只import模块一次,在import某个模块后就存在内存中,此时修改该模块没有用
2.python3提供 importlib模块,reload方法重新载入模块.
3.但是该reload方法有延迟,似乎并不会等reload完毕,直接会继续执行
4.在reload后加延迟,起到预期效果,两个py互相调用和修改
test2.py:
import test1
import importlib
import time
def modify(ii):
with open('test1.py','r') as f_r:
lines = f_r.readlines()
with open('test1.py','w') as f_w:
i = 1
for line in lines:
if i == 19:
num = int(line)+ii
line = '\t\t'+str(num)+'\n'
i = i+1
f_w.write(line)
def f2():
i2= \
1
print('i2 =',i2)
modify(i2)
importlib.reload(test1)
time.sleep(0.2)
if i2<10000:
test1.f1()
if __name__=='__main__':
f2()
print("test2 end")
test1.py:
import test2
import importlib
import time
def modify(ii):
with open('test2.py','r') as f_r:
lines = f_r.readlines()
with open('test2.py','w') as f_w:
i = 1
for line in lines:
if i == 19:
num = int(line)+ii
line = '\t\t'+str(num)+'\n'
i = i+1
f_w.write(line)
def f1():
i1= \
2
print('i1 =',i1)
modify(i1)
importlib.reload(test2)
time.sleep(0.2)
if i1<10000:
test2.f2()
if __name__=='__main__':
f1()
print("test1 end")