Bonsoir,

Je programme une petite appli qui utilise un arbre.
Chaque élément a son parent, et une liste de ses enfants.
Je veux identifier chaque élément par un index avec les mêmes caractéristiques que le sectionnement en Latex ( 1.2 1.2.1 etc).
Pour ce faire, j'ai une petite fonction qui calcule l'index de manière récursive en remontant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 def getStringIndex(self, indStr =''):
        if (indStr == ''):
            print("starting compute index")
        print ('getStringIndex ', indStr)
        print ('name', self.m_Name)
        if not (self.m_Parent is None):
            indStr = "." +str(self.m_Parent.getChildIndex(self))
            print ('sub routine', indStr)
            self.m_Parent.getStringIndex(indStr)
        else:
           print ('return string', indStr)
           return indStr
C'est bourré de print pour déboguer.
J'ai aussi une fonction dump
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
def dump(self):
        print("name = ", self.m_Name)
        print("strIndex",self.getStringIndex())
        #print ("dump")
        for child in self.m_Children:
            child.dump()
Mon problème : le calcul de l'index semble être ok mais aucune string n'est renvoyée ! Voir sortie. Humm...je vois vraiment pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
name =  03
starting compute index
getStringIndex  
name 03
sub routine .3
getStringIndex  .3
name root
return string .3
strIndex None
Merci de votre aide.