Python中如何使用字符串當作變量名
> 1、使用字符串指代變量名。
> 比如說,有兩個變量 a="bbb"和bbb={"c":1},引用a如何得到{"c":1},也就是a的值'bbb'所代表的變量bbb的值。
> google了下,查到 http://www.douban.com/group/topic/2193745/上的以下四種方式能夠將字符串轉作變量,分別是:
>>> exec('bed=5')
> 比如說,有兩個變量 a="bbb"和bbb={"c":1},引用a如何得到{"c":1},也就是a的值'bbb'所代表的變量bbb的值。
> google了下,查到 http://www.douban.com/group/topic/2193745/上的以下四種方式能夠將字符串轉作變量,分別是:
>>> exec('bed=5')
>>> bed
5
>>> exec('bedict={}')
>>> bedict
{}
> globals()['abc'] = 6
>>> globals()['bed'+str(3)] = {}
>>> bed3
{}
> setattr(__builtins__, 'abc', 9)
> __import__('sys')._getframe(0).f_globals['abc'] = 27
> 四種都可以實現,那么,對於引用a如何得到{"c":1},則應該是:>>> a='bbb'
> >>> bbb={"c":1}
> >>> exec('a=%s' % a)
> >>> a
> {"c": 1}
> 即可實現。有沒其他方法了?
> 另外,若想把exec的字符串'a=%s' % a中的a動態改變,而不是指定a,那豈不要先獲得變量a的名字。就是第2個問題。
> 2、從變量名獲得其字符串
> 比如說,變量a='bbb',一般引用a后結果是a的值'bbb',那我該如何得到a的名字字符串'a'? 有沒必要?
> 謝謝!