У меня проблема, когда некоторые объекты класса будут добавлены в список в процессе oop. скажем, у меня есть база данных [ 'kid' , 'parent' , 'grandfather' ]
со многими записями. У меня есть класс:
class Person:
name
children
grandchildren
Я делаю все oop (я знаю, что это плохая идея и я могу просто использовать запросы) и ищу каждый grandfather
. экземпляр класса хранит данные каждого grandfather
и в конце добавляется в список с именем Persons_List
. Вот код:
p = Person()
Persons_List = list()
pr = "" #parents
gr = "" #grandfather
for i in my_database.objects.all().order_by('grandfather'):
if gr != i.grandfather:
gr = i.grandfather
pr = i.parent
if p.name !="":
Persons_List.append(p) # [:] raises Error and deepcopy not working
p.name = ""
p.parents.clear()
p.grandchildren.clear()
p.name = i.grandfather
p.children.append(i.parent)
p.grandchildren.append(i.kid)
else:
if pr != i.parent:
pr = i.parent
try:
p.children.remove(pr)
except: None
p.children.append(pr)
p.grandchildren.append(i.kid)
Persons_List.append(p) #Adds The Last p To The List
проблема в том, что в конце данные, хранящиеся в списке, неверны и запутаны. имя последнее p.name
. и children
и grandchildren
не правы.