2011-06-21 14 views
0

私は関数名 "myfunction"を持っています。私は、文字列「A」を持って、私は私の文字列はPythonオブジェクトの名前だったかのように同じ結果が得られますので、「MyFunctionを」にそれを渡す必要があり、myfunction(a) だから私はPythonの文字列を関数argのコードですか?

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

を持っている私が合格する必要があります"mystring"から "myfuntion"に変わり、 "a"という変数が渡されました。 私はこのような何かを考え、それが動作しません。

myfunction(exec(mystring)) 

PS。はい、私はexec()の結果を知っていますので、それを説明する必要はありません。

答えて

4

それはeval()、ないexec次のようになります。また

myfunction(eval(mystring)) 

:あなたはこのようなものが必要だと思う場合

myfunction(locals()[mystring]) 

は、おそらくあなたが基本的な設計上の問題を持っています。

1

execまたはevalんのニーズ:

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