我想以类似于Javascript的方式使用Python的评估。在Javascript中,我可以评估如下内容:
const myfunc = eval('function(arg1, arg2) { ...... }');
myfunc(1, 2);
首先,我首先要说的是运行的功能并非来自用户区-只有我们团队中的管理员才能编写功能,这是我们产品体系结构的核心部分。我知道安全隐患:)
我想到的一些事情包括:
importlib
动态导入该文件。但是,如果文件管理命令失败或使用不当,我最终会陷入服务器状态的怪异状态,而且我很反感我会调用错误的脚本并执行错误的代码。这些选项我都不是真的爱。我知道我可以根据需要让它们都工作,但是希望能从比我更了解Python的人那里得到意见。
答案 0 :(得分:0)
我使用了第二个选项-它比eval更好。
包含整个类及其功能的文件可以在运行时编写并执行。 使用某种方案,您每次都写一个不同的类名并匹配类名和函数名,可以确保您在需要时调用正确的脚本。