python程序运行的时候上传新代码,有影响吗
首先理解下python程序的运行机制总之,一个.py文件肯定是不能直接运行的,python会先将其编译为pycodeObject,然后再送入虚拟机执行。所以这个问题大概可分为两种情况情况一:还没有导入某个包,但是修改掉了代码,那么执行到这里的代码时,就是修改之后的了。情况二:已经导入的包,在执行过程中修改其代码,不受影响。测试代码情况1#main.pyif __name__ == '__main_
·
首先理解下python程序的运行机制
总之,一个.py文件肯定是不能直接运行的,python会先将其编译为pycodeObject,然后再送入虚拟机执行。
所以这个问题大概可分为两种情况
情况一:还没有导入某个包,但是修改掉了代码,那么执行到这里的代码时,就是修改之后的了。
情况二:已经导入的包,在执行过程中修改其代码,不受影响。
测试代码
情况1
#main.py
if __name__ == '__main__':
import time
time.sleep(10)
import unit_test.pythoninterpreter.modul_1 as module
module.show()
#modul_1.py
print('has import')
def show():
print('show show show')
先运行main.py,然后再修改modul_1.py
结果如下
has import
show show show666
情况2
如果改成这个样子,修改modul_1.py 就没有作用了,因为module早就被导入了,也就是已经被编译了,就不会再次编译了
if __name__ == '__main__':
import time
import unit_test.pythoninterpreter.modul_1 as module
while True:
module.show()
time.sleep(2)
更多推荐
已为社区贡献1条内容
所有评论(0)