如何访问字符串中具有此实例名称的实例的属性
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
”
一样
我有一个列表,其中包含来自同一 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
”