获取模块的所有功能

时间:2017-08-07 17:56:58

标签: python module

项目具有以下结构:

modulename
├── __init__.py
│
├── one
│   ├── function_1.py
│   ├── function2.py
│   └─── __init__.py
│
└── two
    ├── another_function.py
    ├── yet_another_function.py
    └─── __init__.py

每个.py(除了__init__.py除外)都包含以下内容:

def foo(x):
    return x

def bar(x):
    return x + 2

要使用该模块,请按以下方式将其导入:import modulename.one.function1.foo。我想要做的是在倒数第二位找到所有.py个文件名,例如function1another_function

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

  • dir(modulename.one)会产生['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']

  • help(modulename.one)实际上包含标题PACKAGE CONTENTS下的函数文件名称。如何获取PACKAGE CONTENTS

  • 的列表

编辑:我可以(正如有人建议的那样)在__all__中使用__init__.py,但我更喜欢简单的内置函数或模块。

1 个答案:

答案 0 :(得分:0)

我认为您要找的是包__all__文件中的__init__定义。

您可以查看:http://mikegrouchy.com/blog/2012/05/be-pythonic-__init__py.html

解释了包中的__all__行为。