加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何使用Python中具有相同名称的对象的字符串来访问对象本身?

发布时间:2020-05-23 09:32:23 所属栏目:Python 来源:互联网
导读:例如,在下面的代码中,我想使用x作为参考来获取列表[1,2,3]. In[1]: pasta=[1,2,3]In:[2]: pastaOut[2]: [1, 2, 3]In [3]: x=pas+taIn [4]: xOut[4]: pasta 你想做的是一个糟糕的做法. 你真正需要的是一个dict: dct = {pasta: [1,2,3]} x =

例如,在下面的代码中,我想使用x作为参考来获取列表[1,2,3].

In[1]: pasta=[1,3]
In:[2]: pasta
Out[2]: [1,3]
In [3]: x='pas'+'ta'
In [4]: x
Out[4]: 'pasta'

解决方法

你想做的是一个糟糕的做法.

你真正需要的是一个dict

>>> dct = {'pasta': [1,3]}
>>> x = 'pas' + 'ta'
>>> dct[x]
[1,3]

这是您要实现的实际任务的正确数据结构:使用字符串访问对象.

其他答案建议(或只是表现出令人担忧的)不同的方法来做到这一点.由于Python是一种非常灵活的语言,您几乎可以随时找到这样一种不同的方法来遵循一个给定的任务,但是“应该有一个 – 最好只有一个 – 显而易见的方式来实现”[1].

他们都会做这些工作,但不是没有缺点:

> locals()可读性较低,不必要地复杂,在某些情况下也可能面临风险(参见Mark Byers答案).如果您使用本地(),您将要将真正的变量与数据库混合使用,那就是凌乱.
> eval()很简单,是一种“动态地获取一些源代码的快速而又脏的方式”[2]和bad practice.

当对正确的选择方式有疑问时,追踪Zen of Python可能是一个开始.

嘿,即使是InteractiveInterpreter也可以使用字符串访问对象,但这并不意味着我要去.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读