我想更改已分配为另一个对象的属性的对象的属性。cageNumber = int(input('Cage number: '))mouseNumber = int(input('Mouse number: '))mouseID = f'm{mouseNumber}'setattr(cages[cageNumber].mouseID, 'sacrificed', True)笼子是一个类的实例,每个笼子有 5 个属性。每只鼠标都是一个类的实例,它们被分配为笼子对象的属性。笼子包含在字典中。我的笼子有没有指定的属性mouseID,但它确实有5个属性进行命名m1,m2,m3,m4,和m5。这些都解决了mouseID = f'm{mouseNumber}'。我想做这样的事情:cage[101].m3.sacrificed = True对于 5 只老鼠(m1 - m5)中的每只。
1 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
如果我了解您要查找的内容,您需要调用 以getattr()
按名称将属性作为字符串获取。另外,我真的没有看到setattr()
在这里使用的理由。
getattr(cages[cageNumber], mouseID).sacrificed = True
但如果你正在做这样的事情很多(即使你不是),它很可能是把繁琐的少m1
,m2
等进入列表或字典,方便索引,这样你就可以代替这样做:
cages[cageNumber].mice[mouseID].sacrificed = True
添加回答
举报
0/150
提交
取消