Recursive function returning a list

Fabian Steiner lists at fabis-site.net
Mon Jul 17 12:27:22 EDT 2006


Hello!

I have got a Python "Device" Object which has got a attribute (list) 
called children which my contain several other "Device" objects. I 
implemented it this way in order to achieve a kind of parent/child 
relationship.

Now I would like to get all children of a given "Device" object and 
thought that it would be the best way to use recursive function.

This is what I got so far:

     def getAllChildren(self, children=[]):
         if self.children:
             children.extend(self.children)
             for child in self.children:
                 child.getAllChildren(children)
         return children

Unfortunately, it doesn't work like expected since the default parameter 
children=[] is evaluated only once. That's why the children list becomes 
larger and larger after calling the method several times but I can't 
think of another possibility.

Do you have any ideas?



More information about the Python-list mailing list