Получить глобальные переменные из файла как dict? - PullRequest
1 голос
/ 11 августа 2010

У меня есть файл, constants.py, который содержит набор глобальных констант. Есть ли способ, которым я могу взять их всех как dict, только для этого файла?

Ответы [ 2 ]

5 голосов
/ 11 августа 2010

Это должно быть просто:

import constants
print(constants.__dict__)
2 голосов
/ 11 августа 2010
import constants

constants_dict = {}
for constant in dir(constants):
    constants_dict[constant] = getattr(constants, constant)

Я не уверен, что вижу в этом смысл. Как писать constants_dict['MY_CONSTANT'] лучше / легче / читабельнее, чем constants.MY_CONSTANT?

EDIT:

Основываясь на комментариях, я вижу некоторые потенциальные возможности использования.

Вот еще один способ написать выше, в зависимости от того, насколько компактным вы хотите.

constants_dict = dict((c, getattr(constants, c)) for c in dir(constants))

EDIT2:

Чжи за победу! constants.__dict__

...