Вы обычно читаете параметры конфигурации через:
- параметры командной строки / графического интерфейса
- текстовый файл конфигурации
Оба. Мы используем Django settings.py и logging.ini. Мы также используем параметры командной строки и аргументы для параметров, которые изменяются наиболее часто.
Как несколько модулей / объектов имеют доступ к этим параметрам?
- settings.py; logging.ini - не могу сказать.
- Наши опции являются частными для основной программы и используются для сборки
аргументы функций или инициализаторы объектов.
[Совместное использование альтернативных вариантов - большая боль в шее, и излишне связывает многие вещи в непроверяемый беспорядок.]
При выполнении юнит-тестирования одного модуля (НЕ «основного» модуля):
(например, опция чтения с указанием имени файла)
[Я не могу разобрать вопрос. Я предполагаю, что это «как вы тестируете, когда есть варианты?»]
Ответ - мы не делаем. Поскольку только метод main анализирует параметры командной строки, ни один другой модуль, функция или класс не имеет представления о параметрах командной строки. Там нет этого модуля "требуется 1 из 5 опций конфигурации" Классы (или функции) модуля имеют обычные аргументы, и все.
Мы используем только optparse
.