Почему некоторые строки Python печатаются с кавычками, а некоторые печатаются без кавычек?
У меня проблема со строковыми представлениями. Я пытаюсь напечатать свой объект и иногда получаю одинарные кавычки в выводе. Пожалуйста, помогите мне понять, почему это происходит и как я могу распечатать объект без кавычек.
Вот мой код:
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)
Вот что я делаю:
from Tree import Tree
t = Tree('X', Tree('Y','y'), Tree('Z', 'z'))
print t
Вот что я получаю:
(X (Y 'y') (Z 'z'))
Вот что я хочу получить:
(X (Y y) (Z z))
Почему кавычки появляются вокруг значений терминальных узлов, а не вокруг значений нетерминалов?