Impression d'une structure de données Arborescence en Python

J'ai été à la recherche pour une mise en œuvre possible de l'arbre d'impression qui imprime l'arborescence de façon conviviale, et non pas comme une instance de l'objet.

Je suis tombé sur cette solution sur le net:

source: http://cbio.ufs.ac.za/live_docs/nbn_tut/trees.html

class node(object):
    def __init__(self, value, children = []):
        self.value = value
        self.children = children

    def __repr__(self, level=0):
        ret = "\t"*level+repr(self.value)+"\n"
        for child in self.children:
            ret += child.__repr__(level+1)
        return ret

Ce code imprime l'arborescence de la manière suivante:

'grandmother'
    'daughter'
        'granddaughter'
        'grandson'
    'son'
        'granddaughter'
        'grandson'

Est-il possible d'avoir le même résultat, mais sans changer la __repr__ méthode, parce que je suis de l'utiliser pour un autre usage.

EDIT:

Solution sans modifier __repr__ et __str__

def other_name(self, level=0):
    print '\t' * level + repr(self.value)
    for child in self.children:
        child.other_name(level+1)

source d'informationauteur Kristof Pal