2010-04-16 39 views
5

Me da un módulo como objeto y necesito importar un submódulo de él. De esta manera:Importación de un submódulo dado un objeto de módulo

import logging 
x = logging 

Ahora quiero importar logging.handlers utilizando sólo x y no el "registro" nombre. (Esto es porque estoy haciendo algunas importaciones dinámicas y no sabrá el nombre del módulo.)

¿Cómo puedo hacer esto? Si lo hago import x.handlers, falla.

Respuesta

5

Probar:

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

Tenga en cuenta que esto va a devolver una referencia a logging, que es probable que no se preocupan. Sin embargo, creará x.handlers.

+0

Estoy tratando de pensar por qué la importación desde un objeto de módulo no funciona, y parece razonable que probablemente debería. ¿Hay alguna razón específica por la que sepa por qué no lo hace? –

Cuestiones relacionadas