我有一个功能名称“myfunction”。我有一个字符串“a”,我需要将它传递给“myfunction”所以它将给出相同的结果,就好像我的字符串是一个python对象名,myfunction(a)
所以我有
def myfunction(var):
print var
a = 1
mystring = "a"
我需要将“mystring”传递给“myfuntion”,这样它就会像变量“a”一样传递给它。 我想到了类似的东西,但它不起作用:
myfunction(exec(mystring))
PS。是的,我知道exec()的后果,请不要解释。
答案 0 :(得分:4)
这将是eval()
,而不是exec
:
myfunction(eval(mystring))
可替换地:
myfunction(locals()[mystring])
如果你认为你需要这样的话,很可能你有一个基本的设计问题。
答案 1 :(得分:1)
exec
或eval
无需
>>> def myfunc(var):
... print globals()[var] * 2
...
>>> a = 12
>>> myfunc('a')
24