【发布时间】:2018-11-09 16:42:21
【问题描述】:
我有一个 Python 应用程序可以模拟系统的行为,比如汽车。
该应用程序定义了一组相当大的变量,其中一些对应于现实世界的参数(剩余燃料量、汽车速度等),而另一些则与用户不感兴趣的模拟器内部机制相关。
一切正常,但目前用户在模拟执行期间无法与模拟进行任何交互:她只是设置模拟参数,启动模拟,然后等待其终止。
我希望用户(即应用程序的创建者)能够在应用程序之外编写 Python 脚本,以读取/写入与现实世界相关的变量参数(并且只有这些变量)。
例如,在 t=23s(这个条件我知道如何检查),我想执行用户脚本 gasLeak.py,读取剩余燃料值并将其设置为当前值的一半。
总而言之,如何从 Python 主应用程序执行用户编写的 Python 脚本,这些脚本只能访问和修改主脚本变量的预定义子集。 在一个完美的世界,我还希望在应用程序运行期间应用到用户脚本的修改被考虑在内,而不必重新启动所述应用程序(沿着模块的reloading 的东西)。
【问题讨论】:
标签: python namespaces interpreter