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

2024-10-04 09:19:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

例如:

dict_of_functions = {}

def fun(*param):
   //do something

dict_of_functions[STRING_KEYWORD] = fun

layer = ProcessingLayer(dict_of_functions[STRING_KEYWORD])

是否有一个库来处理类似的内容,或者我应该如何最好地执行它?用户创建的每个函数和关键字是否必须位于不同的文件中,并且主文件(从中调用函数)需要导入这些文件?我试着找,但什么也没找到。 谢谢你的回答。你知道吗


Tags: 文件of函数字符串用户webflask参数
2条回答

我不明白你到底想做什么。我想您可能想执行存储在变量中的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()

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

相关问题 更多 >