I have a problem with string representations. I am trying to print my object and I sometimes get single quotes in the output. Please help me to understand why it happens and how can I print out the object without quotes.
Here is my 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) Here is what I do:
from Tree import Tree t = Tree('X', Tree('Y','y'), Tree('Z', 'z')) print t Here is what I get:
(X (Y 'y') (Z 'z')) Here is what I want to get:
(X (Y y) (Z z)) Why do the quotes appear around the values of terminal nodes, but not around the values of non-terminals?