这是我的代码,使用函数中的reload()构建重新加载python模块.我已经看了一些(不是全部))stackoverflow中的其他问题和答案,但为了让我的代码工作,我仍然需要做一个os.remove('m.pyc').任何人都可以向我解释或者告诉我如何更改我的代码以使下面的工作没有删除.
import os
open('m.py','wt').write(r'def f(str): print "Sooo Original : %s"%(str)')
import m
m.f('Original')
os.remove('m.pyc')
open('m.py','wt').write(r'def f(str): print "Not so original : %s"%(str)')
m = reload(m)
m.f('Copy')
Run Code Online (Sandbox Code Playgroud)
通过替换remove语句time.sleep(1)以防止几乎同时创建两个文件,我获得了正确的结果.我想问题是两个文件都有相同的时间戳,这阻止了Python检测到更改并真正重新加载模块.
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |