src/solution.py
Вам нужно реализовать класс TreeBuilder
. Этот класс призван давать возможность собирать древовидные структуры пошагово. Метод add()
добавляет "лист" в текущий узел дерева:
tree = TreeBuilder()
tree.add('1st')
Свойство structure
возвращает текущую структуру дерева:
tree.structure # ['1st']
А использование экземпляра в качестве менеджера контекста добавляет вложенный узел дерева, делая его текущим в рамках контекста. При этом "спускаться вниз" можно на произвольную глубину:
with tree:
tree.add('2nd')
with tree:
tree.add('3rd')
tree.add('4th')
tree.structure # ['1st', ['2nd', ['3rd'], '4th']]
Если в рамках контекста не было добавлено ни одного "листа", то весь узел не должен появляться в итоговой структуре:
tree.structure
['1st', ['2nd', ['3rd'], '4th']]
with tree:
pass
tree.structure # ['1st', ['2nd', ['3rd'], '4th']]
# пустой список не был добавлен!
Структура дерева выводится в виде вложенных списков.
Пример целиком:
tree = TreeBuilder()
tree.structure # []
tree.add('1st')
tree.structure # ['1st']
with tree:
tree.add('2nd')
with tree:
tree.add('3rd')
tree.add('4th')
with tree:
pass
tree.structure # ['1st', ['2nd', ['3rd'], '4th']]
Для полного доступа к испытанию нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Впечатления

Ахтунг просто! Два дня бился над испытанием :D Спасибо за интересную задачку)