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。请看我的一个例子。