我想更改已分配為另一個(gè)對(duì)象的屬性的對(duì)象的屬性。cageNumber = int(input('Cage number: '))mouseNumber = int(input('Mouse number: '))mouseID = f'm{mouseNumber}'setattr(cages[cageNumber].mouseID, 'sacrificed', True)籠子是一個(gè)類的實(shí)例,每個(gè)籠子有 5 個(gè)屬性。每只鼠標(biāo)都是一個(gè)類的實(shí)例,它們被分配為籠子對(duì)象的屬性。籠子包含在字典中。我的籠子有沒(méi)有指定的屬性mouseID,但它確實(shí)有5個(gè)屬性進(jìn)行命名m1,m2,m3,m4,和m5。這些都解決了mouseID = f'm{mouseNumber}'。我想做這樣的事情:cage[101].m3.sacrificed = True對(duì)于 5 只老鼠(m1 - m5)中的每只。
1 回答

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果我了解您要查找的內(nèi)容,您需要調(diào)用 以getattr()
按名稱將屬性作為字符串獲取。另外,我真的沒(méi)有看到setattr()
在這里使用的理由。
getattr(cages[cageNumber], mouseID).sacrificed = True
但如果你正在做這樣的事情很多(即使你不是),它很可能是把繁瑣的少m1
,m2
等進(jìn)入列表或字典,方便索引,這樣你就可以代替這樣做:
cages[cageNumber].mice[mouseID].sacrificed = True
添加回答
舉報(bào)
0/150
提交
取消