2010-04-16 4 views
5

On me donne un module en tant qu'objet, et j'ai besoin d'importer un sous-module. Comme ceci:Importer un sous-module avec un objet module

import logging 
x = logging 

Maintenant, je veux importer logging.handlers en utilisant uniquement x et non le nom de « l'exploitation ». (C'est parce que je fais des importations dynamiques et je ne connaîtrai pas le nom du module.)

Comment faire? Si je fais import x.handlers il échoue.

Répondre

5

Essayez:

__import__('%s.handlers' % x.__name__) 

Notez que cela renvoie une référence à logging, que vous ne serez probablement pas se soucier. Il va créer x.handlers cependant.

+0

J'essaie de comprendre pourquoi l'importation à partir d'un objet module ne fonctionne pas, et il semble raisonnable qu'elle le devrait probablement. Y a-t-il une raison spécifique pour laquelle vous savez pourquoi cela ne fonctionne pas? –

Questions connexes