7
votes

Importation d'un module Python dans un dict (pour une utilisation comme des globaux dans ExecFile ())?

J'utilise le Python ExecFile () Code> Fonction comme un moyen simple mais flexible de manipuler des fichiers de configuration - essentiellement, l'idée est la suivante:

foo = {}
eval('from BarModule import *', foo)
execfile(filename, foo)


3 commentaires

Je ne dépose pas EvalFile Exist; voulez-vous dire exécutant?


L'utilisation d'EVAL n'est pas l'idée évidente IMO, car Python fait une distinction entre expressions et déclarations. EVAL peut évaluer une expression (E.G. EVAL ('2 + 2') ), Exec est pour les instructions (E.G. EXEC 'A = 2 + 2' ). L'importation est une déclaration.


@ Éricaraujo: Je voulais dire exécutant, oui; Edits faits.


3 Réponses :


8
votes

Peut-être que vous pouvez utiliser le __ dict __ défini par le module. xxx


0 commentaires

1
votes

La solution typique consiste à utiliser getattr: xxx


0 commentaires

6
votes

Utilisez le bâtiment vars () fonction pour obtenir le attributs d'un objet (tel qu'un module) comme dict.


0 commentaires