如何在看到导入语句

时间:2015-09-30 12:36:32

标签: python python-2.7

我正在编写一个程序来管理处理数据流。用户可以编写几种方法的代码来处理数据,称为“流程代码”,并告诉我的程序比较每种方法的结果。代码由exec执行。

还有一个git repo包含要调用的函数,用户可以在'flow code'中导入它们。

我的问题是,因为用户可以在每次执行之间更改repo,如何告诉python在'flow code'中看到import语句时重新加载模块?我目前的解决方案是,在执行一行之前,检查'流程代码'的所有局部变量的类型,如果类型为ModuleType则重新加载它。但是,这是非常低效的。有没有更好的解决方案,比如钩子?

有人说imputil可以制作钩子,但文档说:

  

从2.6版开始不推荐使用:已在Python 3中删除了imputil模块。

我正在使用python 2.7

1 个答案:

答案 0 :(得分:0)

使用重新加载方法。

e.g。

>>> import test
>>> test.a
1
>>> test.a = 3
>>> test.a
3
>>> reload(test)
<module 'test' from 'test.pyc'>
>>> test.a
1
>>> 
相关问题