【发布时间】:2013-02-02 21:52:20
【问题描述】:
我有一个导入如下的 python 文件:
from a import z
from b import y
from c import x
# ....
我有每个模块的字符串表示,但我想从所有导入的模块中获取字符串表示,而不必列出所有模块。总之我想做类似for name in something_to_repr_all_imported_modules ....
【问题讨论】:
标签: python
我有一个导入如下的 python 文件:
from a import z
from b import y
from c import x
# ....
我有每个模块的字符串表示,但我想从所有导入的模块中获取字符串表示,而不必列出所有模块。总之我想做类似for name in something_to_repr_all_imported_modules ....
【问题讨论】:
标签: python
sys.modules 是迄今为止所有导入模块的映射...虽然不确定这是否是您要寻找的...
【讨论】:
一个非常粗略的做法是这样的:
>>> import sys
>>> [x for x in locals().keys() if isinstance(locals()[x], type(sys)) and not x.startswith('__')]
您必须从结果中排除 sys,但您会得到图片。
我不确定这是否是实现您想要的最佳方式,但我很确定它至少有效。
【讨论】:
inspect.getmembers 和inspect.ismodule。当然,然后你又回到使用sys.modules 来获取对当前模块对象的引用...