Импорт подмодуля по заданному объекту модуля - PullRequest
5 голосов
/ 16 апреля 2010

Мне дан модуль как объект, и мне нужно импортировать из него подмодуль. Как это:

import logging
x = logging

Теперь я хочу импортировать logging.handlers, используя только x, а не имя "logging". (Это потому, что я делаю некоторые динамические импорты и не буду знать имя модуля.)

Как мне это сделать? Если я сделаю import x.handlers, это не получится.

Ответы [ 2 ]

5 голосов
/ 16 апреля 2010

Попробуйте:

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

Обратите внимание, что это вернет ссылку на logging, которая, вероятно, вас не волнует. Это создаст x.handlers хотя.

0 голосов
/ 16 апреля 2010

Вы можете использовать встроенную функцию __import__: http://docs.python.org/library/functions.html#import

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...