Python 获取模块的所有函数

Python 获取模块的所有函数,python,module,Python,Module,项目具有以下结构: modulename ├── __init__.py │ ├── one │ ├── function_1.py │ ├── function2.py │ └─── __init__.py │ └── two ├── another_function.py ├── yet_another_function.py └─── __init__.py 每个.py(除了\uuuuu init\uuuuuuu.py为空)都包含以下内容: def f

项目具有以下结构:

modulename
├── __init__.py
│
├── one
│   ├── function_1.py
│   ├── function2.py
│   └─── __init__.py
│
└── two
    ├── another_function.py
    ├── yet_another_function.py
    └─── __init__.py
每个
.py
(除了
\uuuuu init\uuuuuuu.py
为空)都包含以下内容:

def foo(x):
    return x

def bar(x):
    return x + 2
要使用模块,请按以下方式导入:
import modulename.one.function1.foo
。我要做的是在倒数第二位查找所有
.py
文件名,例如
function1
另一个函数

到目前为止,建议的解决方案没有成功:

  • dir(modulename.one)
    这将导致
    [“内置”、“缓存”、“文档”、“文件”、“加载程序”、“名称”、“包”、“路径”、“规范”]

  • help(modulename.one)
    它实际上在标题
    包内容下包含了函数文件的名称
    。如何获取
    包内容列表


编辑:我可以(如有人建议的)在
\uuu init\uuuuuuuuuuuy.py
中使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu>,但我更喜欢一个简单的内置函数或模块。

我想你要找的是你的包
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu

你可以看看:


这就解释了包中的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?还是我误解了?我更希望有一种方法可以通过编程找到答案。是的,您必须自己编写
\uuuu all\uuu
。但是,由于
\uuuuu init\uuuuuuuuuuy.py
是一个python模块,因此可以使用glob.glob和importlib.import\u模块用代码填充它。这将是一个可能的解决方案(如果没有更好的答案,我将这样做)。我仍将等待最终的更简单的解决方案。您可以编写代码,以确定模块中的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。请看我的一个例子。