我们都必须熟悉 Python 模块及其工作原理,我们还必须知道如何在程序中使用 Python 模块来使用一些特定的功能。有时,我们中的许多人想知道我们已经安装在系统中的 Python 模块中有多少功能。这是每个人在使用某个特定工具时通常会想到的一个常见问题,回答这个问题并不像看起来那么复杂。
根据模块的大小和功能,Python 模块中可能存在多个函数。如果我们去阅读关于 Python 每个特定模块的文档,找出 Python 模块中有多少函数,那么这将会耗费我们大量的精力和时间。因此,必须有一些其他的方法,通过这些方法我们可以发现 Python 模块中是否有多少函数,我们将在本教程中学习这些方法。我们将学习本教程中的方法,通过这些方法,我们可以很容易地找到给定 Python 模块中有多少函数。
列出 Python 模块的所有功能
在我们了解列出 Python 模块中存在的所有函数的方法之前,我们必须了解我们需要知道模块中存在多少函数的位置和原因。回答这个问题不仅会解决我们大多数人心中的疑问,还会使我们更加热衷于学习方法。因此,首先,我们将看到下面给出的原因,为此我们需要检查 Python 模块中存在的函数:
- 有时,我们必须检查安装在我们系统中的模块是否具有执行特定任务或我们已安装系统的任务所需的所有功能。
- 很多时候,我们不想更新安装在我们系统中的模块,因此我们必须查看当前版本中是否存在我们需要的所有功能。
- 除此之外,有时我们不知道模块中存在多少不同类型的函数,我们想知道 Python 模块中存在的所有这些函数。
这些是人们考虑检查 Python 模块中存在的所有函数的主要原因,但是也可能有其他原因,这些原因因人而异。现在,我们将讨论检查 Python 模块中所有函数列表的方法。
以下是帮助我们查找 Python 模块中所有函数的方法:
- 通过 dir() 方法
- 通过检查模块
现在,我们将学习这两种方法,并了解如何实现这种方法来列出 Python 模块中的所有函数。
方法 1:使用 dir()函数:
我们可以简单地在 Python shell 或命令提示符 shell 中使用 dir() 方法,列出 Python 模块中存在的所有函数。我们首先要在 Python shell 中导入模块,然后我们要在 dir() 方法中写入模块名称,它将返回特定 Python 模块中存在的所有函数的列表。让我们通过下面的示例程序来理解这个方法的实现。
例 1:
看看下面的 Python 程序,我们在其中使用了 dir()函数中的statistics
模块:
# Import the statistics Module
import statistics
# Use statistics inside dir() method
dir(statistics)
输出:
['Counter', 'Decimal', 'Fraction', 'NormalDist', 'StatisticsError', '__all__', '__builtins__', ????, 'quantiles', 'random', 'sqrt', 'stdev', 'tau', 'variance']
正如我们所看到的,当我们在 Python shell 中导入 dir()方法之后使用了statistics
模块时,Python shell 已经列出了statistics
模块中存在的所有函数。
方法 2:使用检查模块:
在这个方法中,我们将使用 isfunction 和来自 inspect 模块(Python 的一个内置模块)的 getmembers 函数来列出 Python 模块中存在的所有函数。我们将使用 for
循环遍历模块,列出我们想要列出的函数。这里需要注意的一点是,我们不能使用这种方法列出 Python 内置模块的函数,因为任何内置模块中存在的函数类型都不会被视为 inspect 模块的函数。让我们通过下面的例子来理解这个方法的实现:
例 2:
看看下面的 Python 程序,我们在检查模块的函数中使用了 Numpy 模块:
# Import the getmembers and isfunction from the Inspect module
from inspect import getmembers, isfunction
# Import the Numpy Module
import numpy
# Use for loop on the Numpy Module with isfunction() and getmembers() function
print(a for a in getmembers(numpy) if isfunction(a[1]))
输出:
['ALLOW_THREADS', 'AxisError', 'BUFSIZE', 'CLIP', 'ComplexWarning', 'DataSource', 'ERR_CALL', 'ERR_DEFAULT', 'ERR_IGNORE', ???., 'version', 'void', 'void0', 'vsplit', 'vstack', 'warnings', 'where', 'who', 'zeros', 'zeros_like']
我们可以看到,Python shell 列出了 numpy 模块中的所有函数。