Я хотел бы определить глобальные «программным» образом. Что-то похожее на то, что я хочу сделать, будет:
definitions = {'a': 1, 'b': 2, 'c': 123.4}
for definition in definitions.items():
exec("%s = %r" % definition) # a = 1, etc.
В частности, я хочу создать модуль fundamentalconstants
, который содержит переменные, к которым можно получить доступ как fundamentalconstants.electron_mass
и т. Д., Где все значения получаются путем синтаксического анализа файла (отсюда и необходимость делать назначения в "программном «путь».
Теперь вышеприведенное решение exec
будет работать. Но мне немного неловко с этим, потому что я боюсь, что exec
- не самый чистый способ достижения цели установки глобальных переменных модуля.