Один из подходов - использовать модуль importlib
.Если ваш constants.py
модуль содержит:
ONE = 1
TWO = 2
ANOTHER = "Test"
__all__ = [ "ONE", "TWO", "THREE", "ANOTHER" ]
Вы можете импортировать их как модуль:
>>> import importlib
>>> constants = importlib.import_module('constants')
>>> constants.ONE
1
>>> constants.__dict__
{ ... 'ONE': 1, 'TWO': 2, 'THREE': 3, 'ANOTHER': 'Test'}
Из-за переполнения атрибутов "dunder" (__spec__
, __builtins__
и т. Д.), Может быть полезно включить атрибут __all__
.
>>> constants_dict = { k: constants.__dict__[k] for k in constants.__all__ }
>>> constants_dict
{'ONE': 1, 'TWO': 2, 'THREE': 3, 'ANOTHER': 'Test'}