【发布时间】:2018-03-28 06:51:06
【问题描述】:
我想获取从任意模块m 导入的所有模块。
当m 以如下方式导入模块时:
from a.b import c
或:
import a.b.c as c
(其中a 和b 是包,c 是模块)
dir(m) 的结果将包含 c(除其他外)。
但是,当我使用:
import a.b.c
dir(m) 的结果将包含a,而不是c。
我也尝试在导入m 后迭代sys._getframe(1).f_locals.items(),但得到了相同的结果。
我怎样才能拥有以这种方式导入c 的m 对象,知道它实际上导入了c?
【问题讨论】:
-
不是很清楚你到底想要什么,如果c是一个模块那么c就是模块本身,反正取决于你的项目结构和每个包的
__init__.py的内容 -
对不起,让我澄清一下:我想从任意模块
m中获取所有导入的模块。现在如果m以这种方式导入c(import a.b.c),我不会通过迭代dir(m)得到c。假设我不知道c在a.b里面——我怎么能得到它?
标签: python python-import python-module