在Python中以变量名插入索引

时间:2014-09-05 17:39:27

标签: python

有谁知道如何在变量名中插入索引?下面,我希望“self.rpt1.IsBridge”中的1来自for循环中的索引,而不是rpt1,因此它将是rpt1rpt2,{ {1}}和rpt3。所有变量名称都不是像rpt [n]

这样的数组
rpt4

3 个答案:

答案 0 :(得分:4)

使用列表而不是一系列相关变量。

self.rpts = [ ... ]

然后

for rpt in self.rpts:
    Log.Print("(Summary) Rpt IsUp = %X"%(rpt.IsUp))

请勿对变量名称中的数据进行编码。

(在C中没有什么不同,你更喜欢使用指针数组而不是一组固定的指针。)

答案 1 :(得分:1)

这不是一个超标准的东西,但你可以做到以下几点:

for i in range(1,5):
  Log.Print("(Summary) Rpt IsUp = %X" % getattr(self, 'rpt%s' % i).IsUp)

这使用getattr在第一个参数中查找对象的属性。

答案 2 :(得分:0)

您可以使用eval

for i in range(1, 5):                
    Log.Print("(Summary) Rpt IsUp = %X" % eval("self.rpt%d.IsUp"%i))

(与使用数组相比,这是一个坏主意。只有当你没有选择时,很少 - 从不? - 发生。)