Я получил проект от разработчика, который покинул нашу компанию. Не слишком сложный, но это выглядит не очень хорошо. Итак, вот вопрос: Приложение имеет несколько модулей, а одно - «настройки», в котором хранится какое-то приложение. варианты (не все возможные варианты, скажем, всего два: foo
и bar
). Когда приложение запускается он считывает параметры из командной строки (используя argparse):Как сохранить настройки приложения для всех модулей
parser.add_argument('--foo', action='store_true')
parser.add_argument('--bar', action='store_true')
parser.add_argument('--baz', action='store_true')
И тогда она выполняет эту неприятную вещь:
for name, val in parser.parse_args(sys.argv[1:])._get_kwargs():
setattr(sys.modules['settings'], name, val)
Первое: Я думаю, что это грязное, без вещий хак , И, во-вторых, это просто неудобно использовать такой код, потому что, когда мне нужно использовать settings.baz
, жалобы IDE, которых он не существует. Цель этого взлома заключается в том, чтобы проанализировать параметры из командной строки во всех модулях, которые используются в приложении далее.
Я думаю о чем-то вроде одноэлементного шаблона, но я использовал его только один раз в PHP и не знаю, правильно ли это решение в python. И даже если это так, может кто-нибудь показать пример?
Я ноб в питоне и на SO, пожалуйста, будьте добры ко мне :) Спасибо.
p.s. Я прошу прощения за возможные ошибки в моем английском
Это дубликат. На это был дан ответ в этом разделе http://stackoverflow.com/questions/15992387/python-settings-file –
Это не дубликат, а другой - о файлах конфигурации, это о конфигурации модуля времени выполнения. –