Использование одного словаря против многих для хранения конфигураций программы - PullRequest
0 голосов
/ 11 октября 2018

Я пишу программу на Python со многими (приблизительно ~ 30-40) параметрами, каждый из которых имеет значения по умолчанию, и все они должны настраиваться пользователем во время выполнения.Как я его настраивал, эти параметры сгруппированы в 4 словаря, соответствующих 4 различным модулям программы.Однако я столкнулся с несколькими случаями использования одного параметра, который требуется более чем одному из этих модулей, что побудило меня рассмотреть вопрос об объединении словарей в один большой словарь конфигурации или, возможно, даже один объект конфигурации, передаваемый каждому модулю.Мои вопросы

  1. Повлияет ли это на время выполнения?Я подозреваю, что нет, но хочу быть уверенным.

  2. Это считается хорошей практикой?Есть ли какое-то другое решение описанной мной проблемы?

1 Ответ

0 голосов
/ 11 октября 2018
  1. вероятно не влияет на время выполнения.большие словари могут занять больше времени для поиска, но в вашем случае речь идет о 40 элементах.это ничего.
  2. мы используем один файл настроек, в котором мы инициализируем глобальные переменные, вызывая метод, который либо читает конфигурацию из окружения, либо из файла или файла Python (как глобальные).метод, который читает конфигурацию, может получить желаемый тип и значение по умолчанию.Другие используют YAML или TOML для представления конфигурации, и я предполагаю, что затем хранит их как глобально доступный объект.Если ваши настройки могут быть изменены во время выполнения, вы должны защитить этот объект с точки зрения безопасности потоков (если у вас есть потоки, конечно).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...