Python模块

2025 年 6 月 8 日 | 9 分钟阅读

在 Python 中,模块被定义为一个包含函数、类或变量的文件。它有助于我们有条理地组织代码并在不同程序中重用。Python 有许多模块,每个模块都有其特定的功能。

什么是 Python 模块?

Python 模块是一个文件,包含 Python 脚本(通常带有 .py 扩展名),其中定义了函数、类或变量。模块还可以包含可执行代码。

将相关代码放入模块中,可以使其更易于阅读、在其他程序中重复使用,并保持一切井然有序。

Python 有三种类型的模块:

  1. 用户自定义模块
  2. 内置模块
  3. 第三方模块

创建 Python 模块

要创建 Python 模块,我们需要编写所需的代码并将其保存为 .py 扩展名的文件。

让我们看一个例子。

示例

说明

在上面的示例中,我们创建了一个 Python 脚本,其中包含一些函数,可以帮助我们对两个数字进行加、减、乘、除。我们将此文件保存为 calculator.py。这个用户自定义模块可以在其他 Python 程序中使用。

在 Python 中导入模块

在 Python 中,我们可以将一个模块中定义的函数和类导入到另一个模块或交互式解释器中。这可以通过下面的 import 语句来实现。

语法

使用 import 关键字后跟 module_name,我们可以使用该模块中定义的函数。

注意:使用 import 语句,我们导入整个模块。要访问导入模块中的函数,我们需要使用点 . 运算符。

让我们看下面的示例,其中我们将尝试导入用户自定义模块 'calculator.py' 并使用其函数。

示例

立即执行

输出

16 + 7 = 23
16 - 7 = 9
16 * 7 = 112
16 / 7 = 2.2857142857142856

说明

在此示例中,我们导入了用户自定义模块 'calculator' 并创建了两个变量。然后,我们访问了 'calculator' 模块的 add()、subtract()、multiply() 和 divide() 等不同函数,并将它们的结果存储在一些变量中。最后,我们打印了结果。

Python 导入时重命名

在 Python 中,我们可以通过重命名来导入模块。这个过程允许我们为该模块使用别名(更短的引用)。

让我们通过以下示例来更好地理解。

示例

立即执行

输出

25 + 9 = 34
25 - 9 = 16
25 * 9 = 225
25 / 9 = 2.7777777777777777

说明

在上面的示例中,我们将用户自定义模块 'calculator' 导入为 'cal' 并创建了两个变量。然后,我们使用 cal 加上函数名来访问导入模块的 add()、subtract()、multiple() 和 divide() 等不同函数。我们将这些函数的结果存储在不同的变量中,并打印了它们的值。

Python from...import 语句

Python 允许我们导入特定的属性,而不必导入整个模块。为了理解这一点,让我们看下面的示例。

示例

立即执行

输出

12 - 7 = 5
12 * 7 = 84

说明

在上面的示例中,我们从用户自定义模块 'calculator' 中导入了 subtract() 和 multiply() 函数。然后,我们初始化了两个变量,并调用了导入的函数来计算数字的差值和乘积。最后,我们打印了结果值。

导入所有属性

与从模块导入特定属性类似,我们可以使用星号 * 符号导入模块中的所有内容。

语法

这是一个展示相同内容的示例。

示例

立即执行

输出

19 * 14 = 266
19 / 14 = 1.3571428571428572

说明

在此示例中,我们使用星号 * 符号从用户自定义模块 'calculator' 中导入了所有内容。然后,我们初始化了两个变量,并调用了 multiply() 和 divide() 函数来计算数字的乘积和除法。最后,我们打印了结果值。

定位 Python 模块

每当我们把一个模块导入到一个程序中时,Python 解释器会在许多位置进行查找。首先,它会检查导入的模块是否是内置模块;如果不是,它会在 sys.path 中定义的目录列表中查找。Python 解释器按以下方式搜索模块:

步骤 1:首先,它会在当前目录中搜索模块。

步骤 2:如果模块未在当前目录中找到,Python 会搜索 shell 变量 PYTHONPATH 中的每个目录。这是一个包含目录列表的环境变量。

步骤 3:如果模块未找到,Python 会检查 Python 安装时配置的、依赖于安装的目录列表。

要检查目录列表,我们可以使用 sys 模块中的 path 变量,如下所示:

示例

立即执行

输出

['/content', '/env/python', '/usr/lib/python311.zip', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', '', '/usr/local/lib/python3.11/dist-packages', '/usr/lib/python3/dist-packages', '/usr/local/lib/python3.11/dist-packages/IPython/extensions', '/usr/local/lib/python3.11/dist-packages/setuptools/_vendor', '/root/.ipython']

说明

在上面的示例中,我们导入了 sys 模块,并使用其 path 变量来返回模块的目录列表。

内置 dir() 函数

Python 提供了一个名为 dir() 的内置函数,该函数有助于列出模块中的所有属性(函数、类、变量)名称。例如,我们之前在 'calculator' 模块中定义了一些函数,如 add()、subtract()、multiply() 和 divide()。我们可以使用 dir() 来获取这些属性的详细信息,如下所示:

示例

立即执行

输出

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'divide', 'multiply', 'subtract']

说明

在上面的示例中,我们导入了用户自定义模块 'calculator',并调用了 dir() 函数来列出导入模块中的所有属性。

结果是,我们可以看到来自 'calculator' 模块的用户自定义函数列表,如 add()、divide()、multiply() 和 subtract()。所有以 \_\_ 开头的其他名称都是与模块相关的默认 Python 属性(非用户自定义)。例如,\_\_name\_\_ 属性存储模块的名称。

Python 内置模块

Python 附带了几个内置模块,它们提供了各种出色的函数和功能来完成不同的任务。我们可以根据需要使用 import 语句将这些模块导入到项目中。

让我们看一些展示如何在 Python 中导入和使用内置模块的示例。

示例 1:导入内置的 math 模块

在此示例中,我们将了解如何导入 math 模块并查看其一些属性和函数的使用。

示例

立即执行

输出

Pi = 3.141592653589793
Square root of 16 = 4.0
Floor value of 19.5 = 19
Ceiling value of 24.7 = 25
Factorial of 6 = 720

说明

在上面的示例中,我们导入了 math 模块。我们使用了 math 模块的各种变量和函数。

示例 2:导入内置的 random 模块

在这里,我们将了解如何导入 random 模块并查看其一些函数的使用。

示例

立即执行

输出

Random Integer between 10 and 50 = 48
Random Floating Point between 0 and 1 = 0.9739271518285192
Random Item from the List = 4

说明

在上面的示例中,我们导入了 random 模块。我们使用了 random 模块的各种变量和函数。

结论

在本教程中,我们学习了 Python 模块是什么。我们了解到模块是一个包含函数、类或变量定义的文件,它有助于我们有条理地组织代码并在不同程序中重用。Python 中使用了三种类型的模块,包括用户自定义模块、内置模块和第三方模块。

我们还讨论了如何在 Python 中创建和导入模块。我们了解到有多种方法可以导入和使用模块中的函数。最后,我们了解了如何在 Python 中定位模块以及内置 dir() 函数的用法。

Python 模块选择题

1. 什么是 Python 模块?

  1. 一种特殊的 Python 函数
  2. 一个包含 Python 代码(如函数、类或变量)的文件
  3. 一个包含多个 Python 文件的目录
  4. 一个内置的 Python 关键字
 

答案:b) 一个包含 Python 代码(如函数、类或变量)的文件


2. 以下哪个语句是导入模块中特定函数的正确方法?

  1. import calculator: add, subtract
  2. from calculator import add, subtract
  3. import add, subtract from calculator
  4. calculator import add, subtract
 

答案:b) from calculator import add, subtract


3. 以下语句会做什么?

import calculator as cal

  1. 使用别名 cal 导入 calculator 模块
  2. 导入 Python 中的所有内置函数
  3. 创建一个名为 cal 的新模块
  4. 将 calculator 模块导出为 cal
 

答案:a) 使用别名 cal 导入 calculator 模块


4. 哪个函数用于列出模块的所有属性(函数、变量等)?

  1. list()
  2. inspect()
  3. dir()
  4. attributes()
 

答案:c) dir()


5. Python 在导入模块时,按什么顺序进行搜索?

  1. 已安装的包 -> PYTHONPATH -> 当前目录
  2. 当前目录 -> PYTHONPATH -> 内置模块
  3. 内置模块 -> PYTHONPATH -> 当前目录
  4. 当前目录 -> PYTHONPATH -> 依赖于安装的目录
 

答案:d) 当前目录 -> PYTHONPATH -> 依赖于安装的目录