【问题标题】:How do I represent all the imported modules in Python [duplicate]如何在 Python 中表示所有导入的模块 [重复]
【发布时间】: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


    【解决方案1】:

    sys.modules 是迄今为止所有导入模块的映射...虽然不确定这是否是您要寻找的...

    【讨论】:

      【解决方案2】:

      一个非常粗略的做法是这样的:

      >>> import sys
      >>> [x for x in locals().keys() if isinstance(locals()[x], type(sys)) and not x.startswith('__')]
      

      您必须从结果中排除 sys,但您会得到图片。

      我不确定这是否是实现您想要的最佳方式,但我很确定它至少有效。

      【讨论】:

      • 可能有一个更干净的解决方案涉及inspect.getmembersinspect.ismodule。当然,然后你又回到使用sys.modules 来获取对当前模块对象的引用...
      • 可能有一个更清洁的解决方案,是的,我的解决方案很麻烦,但我承认我没有那么多经验来操作导入等。
      猜你喜欢
      • 2013-11-01
      • 2015-10-19
      • 2020-01-10
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多