2014-02-10 89 views
2

我的意思是:我可以在执行时更改Python源代码吗?

我有一个程序。最终用户正在使用它。我提交了一段新的源代码,并期望它运行,就好像它始终在那里一样?

我找不到具体回答这个问题的答案。

我希望能够说,“扩展”或添加新功能(而不是修复已经存在的某些内容)而不需要终止程序(例如重新启动或退出) 。

+0

如果你强制重新导入一切,你可能会逃脱。 Python缓存导入,这是它创建你看到的.pyc文件的时候。强制重新导入你的'main'中的所有东西都可能做你想要的东西 – inspectorG4dget

+0

所以基本上重新加载(foo);导入foo? – user3290891

+0

我会这样想的。但我喜欢@ randomusername的回答更好 – inspectorG4dget

回答

0

是的,你绝对可以在Python中做到这一点。

虽然它会打开一个安全漏洞,所以要非常小心。

您可以通过设置一个“loader”类来轻松完成此操作,该类可以收集您希望使用的源代码,然后调用exec内置函数,只需传入一些python源代码即可对其进行评估。

+0

因为我的问题基本上需要一个布尔答案......但我怎么做,但将是有趣的。来自所有用户的一些建议和其他一些问题给了我一些关于从哪里开始的想法。谢谢。 – user3290891

相关问题