【发布时间】:2011-02-08 21:20:42
【问题描述】:
我得到一个模块作为对象,我需要从中导入一个子模块。像这样:
import logging
x = logging
现在我想只使用x 而不是名称“logging”来导入logging.handlers。 (这是因为我正在做一些动态导入并且不知道模块的名称。)
我该怎么做?如果我这样做 import x.handlers 它会失败。
【问题讨论】:
我得到一个模块作为对象,我需要从中导入一个子模块。像这样:
import logging
x = logging
现在我想只使用x 而不是名称“logging”来导入logging.handlers。 (这是因为我正在做一些动态导入并且不知道模块的名称。)
我该怎么做?如果我这样做 import x.handlers 它会失败。
【问题讨论】:
试试:
__import__('%s.handlers' % x.__name__)
请注意,这将返回对logging 的引用,您可能不会关心它。不过它会创建x.handlers。
【讨论】:
您可以使用内置函数__import__:
http://docs.python.org/library/functions.html#import
【讨论】: