Я хотел бы определить глобальные переменные "программным" способом. Нечто похожее на то, что я хочу сделать, будет:
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
- не самый чистый способ достичь цели установки глобальных глобул.