【问题标题】:Importing a submodule given a module object在给定模块对象的情况下导入子模块
【发布时间】:2011-02-08 21:20:42
【问题描述】:

我得到一个模块作为对象,我需要从中导入一个子模块。像这样:

import logging
x = logging

现在我想只使用x 而不是名称“logging”来导入logging.handlers。 (这是因为我正在做一些动态导入并且不知道模块的名称。)

我该怎么做?如果我这样做 import x.handlers 它会失败。

【问题讨论】:

    标签: python dynamic import


    【解决方案1】:

    试试:

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

    请注意,这将返回对logging 的引用,您可能不会关心它。不过它会创建x.handlers。

    【讨论】:

    • 我试图思考为什么从模块对象导入不起作用,并且它可能应该这样做似乎是合理的。您是否知道为什么不这样做的具体原因?
    【解决方案2】:

    您可以使用内置函数__import__: http://docs.python.org/library/functions.html#import

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2022-11-30
      相关资源
      最近更新 更多