python字符串代码为函数arg?

时间:2011-06-21 13:06:02

标签: python string function arguments exec

我有一个功能名称“myfunction”。我有一个字符串“a”,我需要将它传递给“myfunction”所以它将给出相同的结果,就好像我的字符串是一个python对象名,myfunction(a) 所以我有

def myfunction(var):
    print var
a = 1
mystring = "a"

我需要将“mystring”传递给“myfuntion”,这样它就会像变量“a”一样传递给它。 我想到了类似的东西,但它不起作用:

myfunction(exec(mystring))

PS。是的,我知道exec()的后果,请不要解释。

2 个答案:

答案 0 :(得分:4)

这将是eval(),而不是exec

myfunction(eval(mystring))

可替换地:

myfunction(locals()[mystring])

如果你认为你需要这样的话,很可能你有一个基本的设计问题。

答案 1 :(得分:1)

execeval无需

>>> def myfunc(var):
...     print globals()[var] * 2
...
>>> a = 12
>>> myfunc('a')
24