Je suis en train de refactoriser un grand programme scientifique. Le code principal de l'application est constitué de dizaines d'équations utilisant des centaines de paramètres. Parce que ce code de calcul a été testé intensivement, je ne veux pas le changer.Importer un grand nombre de variables dans un espace de noms
Certains des paramètres peuvent être logiquement regroupés en ensembles, par exemple, il peut y avoir des ensembles de paramètres correspondant à un instrument donné. Les simulations doivent être exécutées en échangeant différents ensembles de paramètres.
Je souhaite conserver les paramètres dans un fichier séparé afin qu'ils puissent être facilement modifiés.
Ma question est la suivante: Comment puis-je 'importer' les paramètres dans l'espace de nom du module de calcul d'une manière qui me permettra de spécifier quels ensembles sont utilisés?
En ce moment, j'utilise ce qui semble être un hack. Dans le module paramètres, je détiens des valeurs dans les dictionnaires. Par exemple,
----- start params_module -----
instrument1 = dict(param1=1.0, param2=2.0, ...)
instrument2 = dict(param1=3.0, param2=4.0, ...)
instrument3 = dict(param1=5.0, param2=6.0, ...)
misc_params = dict(param10 = 10, param11=20, ...)
...
----- end params_module -----
je puis importer le dictionnaire d'intérêt dans l'espace de noms calculation_module et l'ajouter dans le dictionnaire globals:
--- start calculation_module -----
from params_module import instrument1, misc_params
globals().update(instrument1)
globals().update(misc_params)
...
many equations that make use of param1, param2, etc.
...
--- end calculation_module -----
est-il un moyen plus Pythonic de le faire?
Merci.
-cytochrome