Код выглядит следущим образом:
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.MainNote = Note('main', 'undef', None)
def dump(self):
f=open(self.workdir+"\\Notes\\" + self.getUser(),"wb")
pickle.dump(self.MainNote,f) #сохраняю объект, в ктором есть ссылки
f.close()
class Note():
ChildrenList = [] #список ссылок
def __init__(self, notename, user, parent):
self.Name = str(notename)
self.User = str(user)
self.Text = self.Name + self.NewNoteTip
self.Parent = parent
ChildrenList = []
def addChildNote(self,notename):
childNote=Note(notename,self.User,self)
self.ChildrenList.append(childNote) # добавляется ссылка на объект
return childNote
def childs(self):
return self.ChildrenList
def getNoteByName(self,notename):
notename = str(notename)
if self.name() == notename:
return self
for x in self.childs(): # здесь возникает проблема: так как в списке есть и сам объект возникает бесконечная рекурсия (и много других проблем в разных частях кода).
childRes = x.getNoteByName(notename)
if childRes != None:
return childRes
else:
return None
return None