Чтобы обеспечить гибкость, я хотел бы иметь возможность прямого доступа к константам. вот так:
Код: Выделить всё
constants.power_1
constants.power_2
constants.data_rate_1
constants.data_rate_2
...
Код: Выделить всё
constants['system_1']['power']
constants['system_2']['power']
constants['system_1']['data_rate']
constants['system_2']['data_rate']
...
Код: Выделить всё
systems = ['system_1', 'system_2']
for system in systems:
power = constants[system]['power']
var_2 = var_1 * power
Что я могу сделать:
Вариант 1. Забудьте о доступе к константам, например, Constants.power_1, и используйте только словарь, например, Constants['power_1']. Поэтому я объявляю их следующим образом в «constants.py»:
Код: Выделить всё
constants['power_1'] = 10
constants['system_1']['power'] = constants['power_1']
Код: Выделить всё
from constants import *
var_2 = var_1 * constants['power_1']
var_2 = var_1 * constants['system_1']['power']
- Мне не очень нравится импорт *, даже если я только импортирую один словарь, я предпочитаю простой импорт.
- Прямой доступ на 4 символа длиннее ().
Код: Выделить всё
['']
Код: Выделить всё
power_1 = 10
varname['system 1']['power'] = power_1
Код: Выделить всё
import constants
var_2 = var_1 * constants.power_1
var_2 = var_1 * constants.varname['system 1']['power']
- Я не нашел осмысленного имени для varname, потому что это не так. необходимо (я мог бы поставить системный, но это избыточно).
- Длительный доступ становится длиннее.
Подробнее здесь: https://stackoverflow.com/questions/792 ... dictionary
Мобильная версия