文字列表現に問題があります。オブジェクトを印刷しようとしていますが、出力に一重引用符が表示されることがあります。なぜそれが起こるのか、引用符なしでオブジェクトを印刷する方法を理解するのを手伝ってください。
これが私のコードです:
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))
終端ノードの値の周りに引用符が表示されるのに、非終端の値の周りに表示されないのはなぜですか?