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

substring变量名python

发布时间:2020-12-20 12:27:52 所属栏目:Python 来源:网络整理
导读:我有这样的变量: self.lamp_1self.lamp_2self.lamp_3self.lamp_4 现在我想使用这个名称中的每一个循环来自动调用它们,如下所示: for i in range(1,5): self.canvas.itemconfig(self.lamp_/number_i_automaticly/,fill=self.color_blink) 我尝试使用函数eva
我有这样的变量:

self.lamp_1
self.lamp_2
self.lamp_3
self.lamp_4

现在我想使用这个名称中的每一个循环来自动调用它们,如下所示:

for i in range(1,5):
    self.canvas.itemconfig(self.lamp_/number_i_automaticly/,fill=self.color_blink)

我尝试使用函数eval()但它不起作用.它停止运行我的程序.

eval("self.canvas.itemconfig(self.lamp_"+str(i)+",fill=self.color_blink)")

如何使用密钥i以这种方式解析变量名称?

解决方法

您可以使用 getattr

for i in range(1,5):
    self.canvas.itemconfig(getattr(self,'lamp_%s' % i),fill=self.color_blink)

但你真的不应该像这样命名你的变量.将它们放在一个列表中并迭代:

self.lamps = [self.lamp_1,self.lamp_2,self.lamp_3,self.lamp_4]
for lamp in self.lamps:
    self.canvas.itemconfig(lamp,fill=self.color_blink)

(编辑:李大同)

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

    推荐文章
      热点阅读