Lui*_*ani 10 python reference object
例如,在下面的代码中,我想使用x作为参考获得列表[1,2,3].
In[1]: pasta=[1,2,3]
In:[2]: pasta
Out[2]: [1, 2, 3]
In [3]: x='pas'+'ta'
In [4]: x
Out[4]: 'pasta'
Run Code Online (Sandbox Code Playgroud)
Rik*_*ggi 13
你要做的是一个不好的做法.
你真正需要的是dict:
>>> dct = {'pasta': [1,2,3]}
>>> x = 'pas' + 'ta'
>>> dct[x]
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这是您尝试实现的实际任务的正确数据结构:使用字符串访问对象.
其他答案建议(或只是表现出来)以不同的方式来做到这一点.由于Python是一种非常灵活的语言,你几乎总能找到一种特定任务的不同方式,但"应该有一种 - 最好只有一种 - 明显的方式" [1].
所有这些人都会做这项工作,但并非没有缺点:
locals()在某些情况下,可读性较差,不必要地复杂且风险敞口(参见Mark Byers的回答).如果您使用的locals()是将实际变量与数据库混合使用,那就太麻烦了.eval()很简单,是一种"动态获取动态源代码的快捷方式" [2],也是一种不好的做法.如果对正确的选择方式存在疑问,那么遵循Python的Zen可能就是一个开始.
嘿,甚至InteractiveInterpreter可以使用字符串来访问对象,但这并不意味着我要去.