python如何制作动态对象名称

Иго*_*чић 0 python variables class object

我有一个类"karte"我想知道有没有一种方法动态名称创建我的新对象正常对象创建将是

显示地图=显示地图()

但我很喜欢这样的事情

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

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

karta1.boja
karta2.boja
karta3.boja
Run Code Online (Sandbox Code Playgroud)

我怎么能实现这一点,我对python感谢新手.

Håv*_*ard 13

您可以创建一个对象列表,如下所示:

karta = []
for i in range(10):
    karta.append(karte())
Run Code Online (Sandbox Code Playgroud)

或者使用列表理解:

karta = [karte() for i in range(10)]
Run Code Online (Sandbox Code Playgroud)

现在您可以像这样访问对象:karta[i].

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

g = globals()
for i in range(10):
    g["karte" + str(i)] = karte()
Run Code Online (Sandbox Code Playgroud)

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


Mat*_*hew 6

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

for i in some_range:
    karta[i]=karte()
Run Code Online (Sandbox Code Playgroud)