为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法将一个对象的属性更改为另一个对象的属性?

有没有办法将一个对象的属性更改为另一个对象的属性?

蓝山帝景 2021-09-28 14:03:28
我想更改已分配为另一个对象的属性的对象的属性。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

但如果你正在做这样的事情很多(即使你不是),它很可能是把繁琐的少m1m2等进入列表或字典,方便索引,这样你就可以代替这样做:

cages[cageNumber].mice[mouseID].sacrificed = True


查看完整回答
反对 回复 2021-09-28
  • 1 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信