python如何制作动态对象名称

时间:2011-09-12 21:30:40

标签: python class variables object

我有一节课“karte” 我想知道有没有一种动态名称创建我的新对象的方法正常对象创建

  

显示地图=显示地图()

但我很喜欢这样的事情

  

显示地图[I] =显示地图()

或类似的东西,我将是for循环的数量。最后我会像这样称呼对象

karta1.boja
karta2.boja
karta3.boja

我怎样才能实现这一点,我对python感谢新手。

2 个答案:

答案 0 :(得分:13)

您可以创建如下对象列表:

karta = []
for i in range(10):
    karta.append(karte())

或使用列表理解:

karta = [karte() for i in range(10)]

现在您可以访问以下对象:karta[i]

要完成上一个示例,您必须修改globals()字典。我根本不赞同这一点,但这里是如何做到的:

g = globals()
for i in range(10):
    g["karte" + str(i)] = karte()

这不是非常pythonic,你应该只使用一个列表。

答案 1 :(得分:6)

除非您确实需要将对象保留在列表之外并且具有karta1,karta2等名称,否则我会按照您的建议进行操作并使用带有循环的列表进行初始化:

for i in some_range:
    karta[i]=karte()