我有一个 python 3 函数,它接受一串命令,比如“np.pi”,然后尝试用该字符串定义一个变量。然后我尝试返回变量,但这不起作用。
input = np.pi
astring = 'funcD(funcC(funcB(funcA(input))))'
def function(astring):
astring= 'variable = ' + astring
exec(astring)
return variable
In: a = function(astring)
Out: NameError: global name 'variable' is not defined
似乎什么都没发生。我想要的是让函数在字符串中返回命令的输出。该字符串包含几个函数,它们彼此作为输入,如下所示。我尝试在不添加变量 = 的情况下将 exec 放在 return 之后,然后使用 = function(astring) 调用该函数,但这也不起作用。我相信我不能使用 eval 因为我的字符串中有函数。