检索应用程序提供的所有Python API的列表

Retrieving the list of all the Python APIs given by an application

本文关键字:Python API 列表 检索 应用程序      更新时间:2023-10-16

我想检索应用程序提供给用户的所有API的列表。

该应用程序大部分是用C/C++编写的。

我希望python有一个标准的函数,我也试图从名称空间的角度来处理这个问题,因为我对所有的关键字都不感兴趣,只对API提供的关键字感兴趣,但我根本不知道从哪里开始函数,我不知道那些正在做与我试图实现的目标相关的事情的函数。

该应用程序使用Python 3.x来提供API。

Python没有API(或接口)作为语言原语的概念。模块或包会暴露其一些成员(函数和变量)并隐藏其他成员,因此,如果您知道您感兴趣的模块,那么从这个意义上讲,"暴露"是AFAIK最有意义的概念。

公开的成员与运行from <module> import *时将导入的成员相同。正如您可能知道的,以一个下划线开始的成员名称,或以两个下划线开始并且以两个结尾的成员名称不应是API的一部分,也不会导出;默认情况下,其他所有内容都将被公开,但模块可以通过在__all__变量中列出应该导出的内容来自定义其API——请参阅从包导入*。

因此,要找到您正在寻找的API,您必须首先知道您感兴趣的顶级模块。如果有问题的应用程序作为单个包可用于python,请从它开始。如果它有__all__变量,则其内容为包的API。如果没有,请查看dir(<package>)的内容,并排除任何仅以一个下划线开头,或以两个下划线开头但不以两个结尾的内容。如果你在看一个大的包,你会发现其中一些本身就是模块或包。以同样的方式递归地检查它们。