如何让用户输入python代码并执行它?

时间:2016-12-12 01:09:17

标签: python

该系统是使用烧瓶的Web应用程序。 我有一个名为ProcessingLayer的类,它接受一个函数作为参数并执行该函数。 我希望用户以函数的形式输入代码并将其与字符串关联,然后在选择字符串时执行该函数。该函数必须能够接受参数。

例如:

dict_of_functions = {}

def fun(*param):
   //do something

dict_of_functions[STRING_KEYWORD] = fun

layer = ProcessingLayer(dict_of_functions[STRING_KEYWORD])

是否有用于处理此类内容的库或我应该如何最好地执行它?用户创建的每个函数和关键字是否必须在单独的文件上,主文件(从中调用函数)是否需要导入这些文件?我试着搜索,但一无所获。 谢谢你的每一个答案。

2 个答案:

答案 0 :(得分:1)

我不明白你想要做什么。我想你可能想要执行存储在变量中的python代码吗?

您可以使用build-in function exec()从str()执行代码。

例如,您的用户在表单中输入了代码,并将其保存在变量中:

my_form = "def fun():\n    pass\n\nfun()"  // This is the return from the Form 

您现在可以使用以下命令执行代码:

exec(my_form)

Python现在执行:

def fun():
    pass

fun()

请记住,用户可以使用该表单来执行一些非常糟糕的代码。 执行用户输入的代码是一种非常糟糕的做法。

答案 1 :(得分:0)