使用eval()获取对象引用

时间:2017-03-14 07:55:32

标签: python

我对Python很陌生。为了优化我的代码,我编写了类似的东西:

class MyObject:
  #class definition

myObject1=MyObject()
myObject2=MyObject()
myObject3=MyObject()

def initObject(ix):
  theObject=eval("myObject%d" % (ix))
  #do object initialization
  action1(theObject)
  action2(theObject)

def action1(obj):
  #do something with obj

def action2(obj):
  #do something more with obj

这样我只有一个代码可以维护,并且代码可以在每个对象实例上运行。这段代码似乎有效,但我不确定这是最好的做法,而且我不确定是否会出现难以调试的错误。

欢迎提出任何建议。

提前致谢

修改

回答jonrsharpe:我不想创建

  

可变数量的变量

我有一定数量的全局变量,其名称因索引而异。我需要在它们上调用相同的例程,只将索引传递给例程,如下面的代码片段所示:

for ix in range(1,4):
  initObject(ix)

0 个答案:

没有答案