如何访问字符串中具有此实例名称的实例的属性

How to access an attribute of an instance having the name of this instance in a string

我有一个列表,其中包含来自同一 class 的实例的所有名称(字符串)。我想使用 for 循环遍历该列表并一个一个地更改它们的属性,但它会引发此错误:AttributeError: 'str' object has no attribute 'fixedColor'

我应该创建另一个包含对象而不是字符串的列表,还是有办法访问具有字符串对象的对象?

我想在这里申请:

listaCartas_temp = listaCartas
listaColores_temp = listaColores

for i in listaCartas:

    a=random.choice(listaCartas_temp)
    listaCartas_temp.remove(a)
    b=random.choice(listaCartas_temp)
    listaCartas_temp.remove(b)
    color = random.choice(listaColores_temp)
    listaColores_temp.remove(color)

    pairs.append(tuple([a, b]))

    a.fixedColor = color
    b.fixedColor = color

其中 listaCartas(和 listaCartas_temp)是包含这些字符串的列表。我有各种卡片 (cartas)。我想制作独特的配对并为每对分配颜色。

String只是一个字符串变量。它没有任何属性。你不能从他们的名字访问一个对象。您可以通过对象的变量访问对象。您需要访问您的属性,例如“object.attribute”。

您可以使用字典将相关字符串匹配到指定值

fixedColor = {}
fixedColor[a] = color
fixedColor[b] = color

当您想访问颜色时,只需执行

xxx = fixedColor[b]

这与调用您的“b.fixedColor

一样