В настоящее время я пишу приложение PyGTK, и мне нужен совет о том, как лучше всего структурировать мое приложение. В основном приложение считывает конкретную спецификацию файла и представляет ее в графическом интерфейсе для редактирования.
В настоящее время у меня есть parser.py, который обрабатывает все низкоуровневые операции ввода-вывода и анализ файла. Я показываю содержимое файла в виде дерева, что означает, что мне нужно использовать хранилище дерева в качестве типа данных.
Проблема, с которой я столкнулся, заключается в том, что я придумал только два решения этой проблемы. Во-первых, мой синтаксический анализатор может построить хранилище дерева и передать его моему классу пользовательского интерфейса. Это требует, чтобы мой синтаксический анализатор зависел от pygtk, и сводит к минимуму потенциальное повторное использование класса. Вторым будет сохранение ссылки на мой класс пользовательского интерфейса в синтаксическом анализаторе, что также потенциально ограничит повторное использование моего класса синтаксического анализатора в качестве отдельной библиотеки.
Чтобы сжать мой вопрос в одну короткую строчку: есть ли способ достичь моих целей более питоническим или ООП-дружественным способом?
Если мой код поможет любому, кто пытается ответить на мой вопрос: https://code.launchpad.net/~blainepace/nbtparser/trunk
Другие питонические предложения приветствуются, это моя первая программа на Python, и я могу застрять в стиле мышления, более похожем на C++. Я планирую рефакторинг многих из них.