如何更新对象中的属性,对象在列表中
class kas:
nom ="a"
p1=""
p2=""
def __init__(self,nom,p1,p2):
self.nom = nom
self.p1=p1
self.p2=p2
@staticmethod
def acoter(nom,b1,b2,maliste):
newlist=list()
for i,k in maliste:
if nom==k.nom:
maliste.remove(i)
k.p1[0]=b1[0]
k.p2[0]=b2[0]
maliste.insert(i, k)
我如何更新对象k中的元素p1并在我的恶意中更新他?
答案 0 :(得分:1)
我建议重写这样的acoter方法:
@staticmethod
def acoter(nom, b1, b2, maliste):
for i, k in enumerate(maliste):
if kas.nom == k.nom:
k.p1[0] = kas.b1[0]
k.p2[0] = kas.b2[0]
因为maliste是list()
而您只是将对象k
附加到列表中,所以我怀疑for i,k in maliste:
会抛出错误。
要更新列表中对象的属性,您只需获取对象的引用并更新其属性即可。所以我认为你不需要从maliste中删除并再次将此更新的对象插入maliste列表。而且,新列表列表是不需要的。