Как программно установить глобальное (модуль) переменная?

Вы найдете, что код преобразовывает между цветовыми пространствами в эти библиотека рубина цветных инструментов

35
задан Eric O Lebigot 15 September 2009 в 21:50
поделиться

3 ответа

Вы можете установить глобальные переменные в словаре, возвращаемом globals ():

definitions = {'a': 1, 'b': 2, 'c': 123.4}
for name, value in definitions.items():
    globals()[name] = value
41
ответ дан 27 November 2019 в 06:33
поделиться

Вот лучший способ сделать это:

import sys
definitions = {'a': 1, 'b': 2, 'c': 123.4}
module = sys.modules[__name__]
for name, value in definitions.iteritems():
    setattr(module, name, value)
58
ответ дан 27 November 2019 в 06:33
поделиться

Вы правы, exec обычно плохая идея, и в данном случае она определенно не нужна.

Ответ Неда хорош. Другой возможный способ сделать это, если вы являетесь модулем, - это импортировать себя:

financialconstants.py:

import fundamentalconstants

fundamentalconstants.life_meaning= 42

for line in open('constants.dat'):
    name, _, value= line.partition(':')
    setattr(fundamentalconstants, name, value)
4
ответ дан 27 November 2019 в 06:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: