2010-04-16 12 views
5

Mi viene assegnato un modulo come oggetto e devo importare un sottomodulo da esso. Come questo:Importazione di un sottomodulo dato un oggetto modulo

import logging 
x = logging 

Ora voglio importare logging.handlers utilizzando solo x e non il nome di "registrazione". (Questo perché sto facendo alcune importazioni dinamiche e non conoscerò il nome del modulo.)

Come faccio? Se faccio import x.handlers fallisce.

risposta

5

Prova:

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

Si noti che questo restituirà un riferimento a logging, che probabilmente non si preoccupano. Creerà però x.handlers.

+0

Sto cercando di capire perché l'importazione da un oggetto modulo non funziona, e sembra ragionevole che probabilmente dovrebbe. C'è una ragione specifica per cui sai perché non lo fa? –

Problemi correlati