如何让inspect.getsource响应源代码的变化?

时间:2013-05-07 00:30:54

标签: python inspection

我制作了两个文件:

#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模块重新读取源文件?

(如果你必须知道我为什么要这样做,我会在评论中详细说明,但就目前而言,我想知道是否有解决方法,或者如果检查模块有一些基本的东西可以阻止这种情况。

1 个答案:

答案 0 :(得分:4)

这应该可以解决问题:

import linecache
linecache.clearcache()