Python / 13 Python 中的模块

Python 中的模块

Python 模块是一个 Python 文件,定义了各种功能接口。把复杂的功能封装为模块(又称为库),将功能实现的细节隐藏起来,使用该模块(库)的程序员不需要了解实现的细节。通过调用模块封装好的功能,可以用仅仅几行 Python 代码实现某项复杂的功能,例如可以用一行代码就实现一个 Web 服务器。

在 Python 的应用领域中,如:web 开发、人工智能、网络爬虫、数据分析等领域,已经存在了大量的模块,使用这些模块就可以轻松开发出应用程序。

1. 内置模块

Python 中的模块分为两类:

  • 内置模块,由 Python 官方提供,包含在 Python 的安装包中,安装完 Python 后即可使用
  • 第三方模块,由 Python 爱好者提供,需要用户额外安装

Python 提供了多个内置模块,提供了日常编程中许多问题的标准解决方案,常见的内置模块如下:

模块名 功能描述
os 提供操作系统的 IO 访问等功能
sys 提供获取命令行参数等功能
math 提供各种常见的数学运算函数
random 提供产生随机数的功能
json 提供对 json 文件的解析功能
datetime 提供日期、时间的相关功能

2. 模块语法

2.1 math 模块简介

Python 的 math 模块提供了很多数学运算功能,例如:三角函数、求平方根、求对数等功能:

函数接口 功能描述
fabs 计算绝对值
sin 正弦函数
cos 余弦函数
sqrt 求平方根

在下面的小节,将使用 math 模块作为例子讲解 Python 中模块的语法。

2.2 import 语句

import 语句将指定模块名的模块导入到程序中,然后程序即可使用模块中定义的函数,语法如下:

import 模块名

使用 import 语句的示例如下:

>>> import math
>>> math.fabs(-123.0)
123.0
  • 在第 1 行,引入 math 模块
  • 在第 2 行,使用 math 模块中的 fabs 函数求绝对值

2.3 import … as 语句

import … as 语句为模块取一个别名,程序可以使用模块的别名访问模块中的接口函数,语法如下:

import 模块名 as 别名

使用 import … as 语句的示例如下:

>>> import math as m
>>> m.fabs(-123.0)
123.0
  • 在第 1 行,引入 math 模块,设置模块的别名为 m
  • 在第 2 行,通过模块的别名 m 访问模块

2.4 from … import 语句

from … import 语句从指定模块中导入指定函数,程序可以通过函数名直接访问模块中定义的函数,语法如下:

from 模块名 import 函数名

使用 from … import 语句的示例如下:

>>> from math import fabs
>>> fabs(-123.0)
123.0
  • 在第 1 行,从 math 模块中引入函数 fabs
  • 在第 2 行,通过函数名 fabs 访问模块中定义的函数

2.5 from … import … as 语句

from … import … as 语句从模块中导入函数,同时为导入的函数取一个别名,示例如下:

>>> from math import fabs as abs
>>> abs(-123.0)
123.0
  • 在第 1 行,从 math 模块中引入函数 fabs,并为该函数设置别名 abs
  • 在第 2 行,通过函数的别名 abs 访问模块中定义的函数

2.6 from … import * 语句

from … import * 语句导入模块中全部的功能函数,示例如下:

>>> from math import *
>>> fabs(-123.0)
123.0
>>> sqrt(9)
3.0
  • 在第 1 行,从 math 模块中导入全部的功能函数
  • 在第 2 行,使用 math 模块中定义的函数 fabs 求绝对值
  • 在第 4 行,使用 math 模块中定义的函数 sqrt 求平方根

3. 用户自定义模块

3.1 概述

本节讲解了如何自定义模块和使用模块,例子程序包括两个文件:

  • 模块 utils.py,定义了函数 max、函数 min 和变量 PI,它们是模块提供的接口
  • 主程序 main.py,使用模块的接口函数和导出变量

3.2 定义模块

编写程序 utils.py

PI = 3.14

def max(a, b):
    if a > b:
        return a
    else:
        return b

def min(a, b):
    if a < b:
        return a
    else:
        return b
  • 在第 1 行,定义了模块的导出变量 PI
  • 在第 3 行,定义了模块的导出函数 max
  • 在第 9 行,定义了模块的导出函数 min

3.3 使用模块

编写主程序 main.py注意:将 main.pyutils.py 放置在相同目录下:

import utils
print(utils.PI)
print(utils.max(11, 22))

from utils import min
print(min(11, 22))
  • 在第 1 行,引入模块 utils
  • 在第 2 行,访问模块的导出变量 PI
  • 在第 3 行,访问模块的导出函数 max
  • 在第 5 行,引入模块 utils 中的导出函数 min
  • 在第 6 行,访问模块的导出函数 min

运行程序 main.py,输出结果如下:

C:\> python main.py
3.14
22
11
  • 在第 2 行,输出 PI 的值
  • 在第 3 行,输出 max(11, 22) 的结果
  • 在第 4 行,输出 min(11, 22) 的结果