code = "def foo(): return 'bar'"
def lol(code):
exec code
return foo
a = lol(code)
print a()
这可以正常工作,但是当我们不知道字符串中的函数被调用时,问题就开始了。如果我可以保证代码很小,只需一个函数,我该如何返回该函数?
我想到的一个解决方案就是要求将这个功能称为“foo'等等,所以我可以回复,但感觉很难看。
思想?
答案 0 :(得分:1)
您可以通过显式指定用于全局和本地执行上下文的字典InputStreamReader input = new InputStreamReader(System.in);
BufferedReader buff = new BufferedReader(input);
Scanner scan = new Scanner(buff);
来实现。之后用于本地的一个应该有一个函数对象的条目,可以在不知道其名称的情况下返回,因为它应该是字典中定义的唯一项目:
exec