37758


pythonで文字列をインスタンスに変更する方法を知りたいです。  
例えば、

[code]

    a = 10
    string = "a"
    
[/code]

と宣言されている場合

[code]

    print func(string)
    
[/code]

で10と出力されるような関数(func)があれば教えていただきたいです。


CC BY-SA 3.0
2017-09-06T09:19:39.470
37757
2017-09-08T18:23:51.707
2017-09-06T09:37:53.890
3605
25245
question
python
pythonで文字列をインスタンスに変更する方法


そういう関数は知りませんが、変数の種類が予めわかってるなら辞書を作ればできます。

[code]

    dic={}
    dic["a"]=a
    
[/code]

これで、

[code]

    dic[string] = 10
    
[/code]

になります。


CC BY-SA 3.0
2017-09-06T09:38:04.230
37758
2017-09-06T09:38:04.230
37757
answer


お勧めしませんが、これでどうでしょう

[code]

    Python 2.7.12 (default, Dec 16 2016, 03:08:23)
    [GCC 4.9.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = 10
    >>> string = 'a'
    >>> print locals()[string]
    10
    
[/code]


CC BY-SA 3.0
2017-09-06T09:38:52.770
37759
2017-09-06T09:38:52.770
806
37757
answer


お勧めしませんが、典型的なevalですね。

[code]

    >>> a=10
    >>> eval("a")
    10
    
[/code]


CC BY-SA 3.0
2017-09-08T18:23:51.707
37820
2017-09-08T18:23:51.707
7837
37757
answer