Я пишу конфигурационную программу для своего собственного дистрибутива Linux. Конфигурация разделена на разделы: general, networking, session, etc.
- которая группирует аналогичные параметры. Например. в разделе общие есть компьютеры name, description, workgroup, language
опций.Классы для группировки некоторых действий в Python
Я думаю, что каждый раздел должен быть представлен классом, и каждый вариант должен иметь соответствующее свойство (getter и, возможно, setter).
Кроме того, было бы неплохо для обобщения, есть ли функция, чтобы проверить, если данная опция включена (т.е. если система удовлетворяет требования для данного варианта), а именно:
class General(object):
@property
def name(self):
return self.get_computer_name()
@name.setter
def name(self, name):
self.set_computer_name(name)
def is_option_enabled(self, option):
return True_or_False
Что еще мне нужно эти варианты (и разделы) ссылку вместе с соответствующим переведенным именем и описанием (с использованием gettext).
Я знаю, что уровень жесткого кодирования в классах не является хорошей идеей ... Мне нужно что-то вроде шаблона проектирования, общей идеи/шаблона, как реализовать это, чтобы оно было высокого качества, легко управляться и расширяться.
Я собираюсь создать несколько передних концов для этих классов (текст, gui, web), поэтому я не хочу, чтобы каждый раз повторял тот же код.
Я имею в виду очень трудно, но, к сожалению, я не знаю, как это сделать, или есть какие-то сомнения ...
Спасибо :)
Считаете ли вы использование [configparser] (http://docs.python.org/py3k/library/configparser.html)? –
Не совсем ... зачем? Но я напишу программу для импорта и применения/экспорта этих параметров из формата JSON. – marcinpz
Чтобы импортировать/экспортировать конфигурацию в файл, это первое, что мне пришло в голову, я никогда не использовал json, но он поддерживается в std-lib, поэтому я думаю, что это то же самое. –