我想检索应用程序提供给用户的所有 API 的列表。
应用程序大部分是用 C/C++ 编写的。
我希望 python 有一个标准函数,我也试图在命名空间方面处理这个问题,因为我对所有关键字不感兴趣,只对 API 提供的关键字感兴趣,但我只是在功能方面不知道从哪里开始,我不知道正在做与我想要实现的目标相关的功能。
该应用程序使用 Python 3.x 提供 API。
最佳答案
Python 没有将 API(或接口(interface))作为语言原语的概念。一个模块或包将暴露它的一些成员(函数和变量)并隐藏其他成员,所以如果您知道您对哪些模块感兴趣,那么“暴露”在这个意义上是 AFAIK 最有意义的概念。
公开的成员与运行 from <module> import *
时将导入的成员相同.您可能知道,成员名称以单个下划线或 begin with two underscores 开头。并且不以两个结尾,不是 API 的一部分,也不会导出;默认情况下,其他所有内容都会公开,但模块可以通过在 __all__
中列出应导出的内容来自定义其 API。变量——参见 Importing * from a package .
因此,要找到您正在寻找的 API,您必须首先知道您对哪些顶级模块感兴趣。如果所讨论的应用程序作为单个包可用于 python,请从它开始。如果它有 __all__
变量,其内容是包的 API。如果没有,请查看 dir(<package>)
的内容并排除仅以单个下划线开头或以两个下划线开头但不以两个下划线结尾的任何内容。如果您正在查看一个大包,您会发现其中一些本身就是模块或包。以相同的方式递归地检查它们。
关于c++ - 检索应用程序提供的所有 Python API 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267320/