如何在Python中查找所有子模块?

Sov*_*iut 13 python module package python-import

虽然在Python中将"子"模块导入另一个模块并列出其属性是相当简单的,但是当您想要导入所有子模块时,它会变得稍微困难​​一些.

我正在为现有的3D应用程序构建工具库.每个工具都有自己的菜单项和子菜单.我希望该工具负责创建自己的菜单,因为许多菜单都会根据上下文和模板进行更改.我希望我的基本模块能够找到所有子模块并检查create_menu()函数,并在找到它时调用它.

发现所有子模块的最简单方法是什么?

dfa*_*dfa -2

使用dir()imp 模块

  • 这是一个非常简洁的答案,我不明白为什么它被接受。dir() 的文档假设您的对象已经具有属性。您能否详细说明一下应该如何使用 dir() 来查找尚未导入的模块? (11认同)
  • 不: `$ mkdir foo $ touch foo/__init__.py $ touch foo/bar.py $ python Python 2.7.1+ (r271:86832, 2011 年 4 月 11 日,18:05:24) [GCC 4.5.2] 在 linux2 上输入“帮助”、“版权”、“制作人员”或“许可证”以获取更多信息。>>> 导入 foo >>> foo <模块 'foo' from 'foo/__init__.py'> >>> dir(foo) ['__builtins__', '__doc__', '__file__', '__name__', '__package__' , '__path__'] >>> from foo import bar >>> bar <模块 'foo.bar' from 'foo/bar.py'>` (3认同)