Я знаю, что pprint
может довольно печатать вложенный список или словарь, которые являются обоими типами древовидных структур, но я хочу, чтобы pprint
дерево на основе классов с произвольным количеством детей, так что узлы с отступом справа на их уровне в дереве.Как создать структуру данных дерева, которая реализована с использованием классов?
Может ли pprint
использовать то, что я хочу, и если да, то как? Я могу написать свою собственную функцию, которая красиво печатает дерево, но я хотел проверить, нужно ли мне это делать.
Рассмотрим следующий пример:
class Tree:
def __init__(self, value, *args):
self.value = value
self.children = args
tree = Tree("+", Tree(1), Tree("*", Tree(2), Tree(3)))
Вот мой ожидаемый результат, если бы мы были довольно-печать дерево:
+
1
*
2
3
Опять же, я могу, конечно, свернуть свою собственную функцию, но Я хочу посмотреть, смогу ли я использовать pprint
, если это будет проще, и я просто что-то пропускаю.
pprint documentation не является примером для моего варианта использования.
Если это имеет значение, я использую Python 2.7.
Спасибо! Кажется, что ошибка документа, что в документации [pprint documentation] (https://docs.python.org/2/library/pprint.html) не упоминается '__repr__'. –