Pourquoi certains Python les chaînes de caractères sont imprimés avec des citations et certains sont imprimés sans les guillemets?

J'ai un problème avec la chaîne de représentations. Je suis en train d'imprimer mon but, et j'ai parfois des guillemets simples dans la sortie. Merci de m'aider à comprendre pourquoi il se produit et comment puis-je imprimer l'objet sans les guillemets.

Voici mon code:

class Tree:
    def __init__(self, value, *children):
        self.value = value
        self.children = list(children)
        self.marker = ""

    def __repr__(self):
        if len(self.children) == 0:
            return '%s' %self.value
        else:
            childrenStr = ' '.join(map(repr, self.children))
            return '(%s %s)' % (self.value, childrenStr)

Voici ce que je fais:

from Tree import Tree
t = Tree('X', Tree('Y','y'), Tree('Z', 'z'))
print t

Voici ce que j'obtiens:

(X (Y 'y') (Z 'z'))

Voici ce que je veux obtenir:

(X (Y y) (Z z))

Pourquoi les citations apparaissent autour des valeurs de la borne nœuds, mais pas autour des valeurs de non-terminaux?

OK, j'ai trouvé l'explication de repr(x) produit des chaînes entre guillemets ici

OriginalL'auteur Olga | 2013-06-18