我制作了两个文件:

#test_func.py
def test():
    print('hello')


#test_inspect.py
import inspect
import test_func

reload(inspect)
reload(test_func)
reload(inspect)
reload(test_func)

print inspect.getsource(test_func.test)

从 IPython 或其他交互式 shell 运行 import test_inspect 会打印正确的内容:
def test():
    print('hello')

但是如果我编辑并保存 test_func.py 为:
#test_func.py
def test():
    print('good bye')

我仍然得到:
def test():
    print('hello')

当我从 shell 运行 reload(test_inspect) 时。如何说服 inspect 模块重新读取源文件?

(如果您必须知道我为什么要这样做,我会在评论中详细说明,但现在,我只想知道是否有解决方法,或者检查模块是否有一些基本的东西可以防止这)

最佳答案

这应该可以解决问题:

import linecache
linecache.clearcache()

关于python - 我怎样才能让inspect.getsource 响应源代码的变化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16409385/

10-12 22:53