
❤️ 博客主页:水滴技术
🌸 订阅专栏:Python 入门核心技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
文章目录
- 一、什么是模块
- 二、自定义模块
- 三、引用其它模块
- 3.1、使用 `import` 引用模块
- 3.2、使用 `from...import` 引用模块
- 3.3、查看导入了哪些定义
- 3.4、该选择哪种方式引入模块呢?
- 四、模块的搜索路径
- 4.1、临时添加
- 4.2、增加 `.pth` 文件(推荐)
- 4.3、在 `PYTHONPATH` 环境变量中添加
- 系列文章
- 热门专栏
大家好,我是水滴~~
本篇主要讲述 Python 中的模块,主要内容有:模块的概念、自定义模块、如何引用其它模块、以及模块的搜索路径。
一、什么是模块
在 Python 中,一个模块(Module)就是一个 Python 文件,以
.py结尾,它可以定义变量、函数、类和可执行语句等。
通常情况,我们会把能够实现某一特定功能或一系列相关功能的代码,放到一个模块中,从而方便其他程序或脚本导入并使用,提高了代码的复用性。
Python 有很多自带的模块,称为标准库,通过它们可以实现很多常见的功能。例如:sys、datetime、os、logging 等。
Python 还具有非常丰富的第三方模块,称为第三方库,通过它们可以实现很多特色的功能。例如:requests、selenium、PyPDF2、matplotlib、Django 等。
二、自定义模块
自定义模块首先要创建一个 Python 文件,文件命名为:模块名 + .py,其中模块名不能使用 Python 自带模块的名称。
下面我们 使用 IDLE 来创建一个模块:在 IDLE 菜单中选择【File】-【New File】,即可打开编辑窗口,在编辑窗口中编写模块的内容(下面模块中,实现了“加法”和“减法”两个函数)。

保存时,文件名即为模块名,下图将模块保存至 D:\IDLEProjects 目录中,模块名为 maths.py。

这样,一个模块就创建好了。
三、引用其它模块
上面我们自定义了一个模块 maths.py,那么我们该如何使用它呢?要使用它,首先就是引用它,即将模块加载到要使用的模块中。Python 有两个方式来引用模块:
3.1、使用 import 引用模块
import可以引用模块,它的语法为:import module_name [as alias],其中module_name为要引入的模块名,还可以通过as来指定一个别名。
我们在相同的目录中创建一个 tests.py 模块,并通过 import 来引入自定义的 maths 模块,下面就可以通过这个模块名来调用它的函数了,如下图:

执行该代码,输出结果如下图:

如果使用了别名,那么在使用的时候,就用别名来调用模块中的函数:
import maths as m
print(m.add(3, 1))
print(m.sub(3, 1))
3.2、使用 from...import 引用模块
前面使用 import 语句引入模块,必须使用模块名来调用对应的函数或变量,而 from...import 就不一样了,下面一起来看下。
使用
from...import来引入模块,它的语法为:from model_name import member [, member],其中model_name为模块名称;member为模块中的变量、函数或类,也可以导入多个定义,中间使用逗号,隔开即可,如果导入全部定义,使用星号*代替。
使用 from...import 引入模块后,就可以不用加模块名,直接调用其中的函数了,如下图:

执行该代码,输出结果如下图:

下面代码引入 maths 模块中所有定义:
from maths import *
print(add(3, 1))
print(sub(3, 1))
3.3、查看导入了哪些定义
上面使用 from maths import * 引入模块,就不知道引入了哪些定义。其实我们可以通过 Python 自带的函数 dir() 来查看当前模块导入了哪些定义,如:
from maths import *
print(dir())
输出结果:
['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'sub']
从输出结果可以看出,不但有模块自有的定义,还包含引入的 maths 模块中的两个函数。
3.4、该选择哪种方式引入模块呢?
上面介绍的两个引入模块的方式,我们该如何选择呢?
使用
from maths import *的好处是不用指定模块,就可以直接调用其中的定义。但如果导入多个模块,其中的函数名相同时,那么后引入的模块会覆盖之前相同的函数,这种情况下就只能使用import引入模块了。
四、模块的搜索路径
上面例子中,maths.py 和 tests.py 模块在同一个目录下,所以可以引用。如果放在不同模块,还能引用吗?显然是不行的,因为模块引用时,是按照搜索路径来的。
可以使用 sys 模块的 path 变量来查看搜索路径:
import sys
print(sys.path)
输出结果:
['D:\\IDLEProjects', 'D:\\Python\\Python311\\Lib\\idlelib', 'D:\\Python\\Python311\\python311.zip', 'D:\\Python\\Python311\\Lib', 'D:\\Python\\Python311\\DLLs', 'D:\\Python\\Python311', 'D:\\Python\\Python311\\Lib\\site-packages']
第一个为当前模块的目录,其他为 Python 默认安装路径下的一些目录。
当然,我们也可以通过一些配置来引用不同目录下的模块,下面是三种方法:
4.1、临时添加
可以在模块中使用 sys.path.append() 方法临时添加一个目录。
import sys
sys.path.append('E:\temp')
该方式只对当前模块生效。
4.2、增加 .pth 文件(推荐)
在 Python 的安装目录中,找到 Lib\site-packages 目录(我的目录为:D:\Python\Python311\Lib\site-packages),在该目录中添加一个 .pth 文件,文件名没有要求,内容为要添加的目录。
这种方式对当前 Python 版本生效,也是我们推荐的一种方式。
4.3、在 PYTHONPATH 环境变量中添加
还可以通过操作系统的环境变量来添加,增加一个系统变量 PYTHONPATH,值为要添加的目录即可。
这种方式会对当前操作系统中,安装的所有 Python 版本生效。
系列文章
🔥 Python 基础(一):初识 Python
🔥 Python 基础(二):搭建 Python 开发环境
🔥 Python 基础(三):Python 集成开发工具 IDLE
🔥 Python 基础(四):基础语法
🔥 Python 基础(五):变量与常量
🔥 Python 基础(六):基本数据类型
🔥 Python 基础(七):常用运算符
🔥 Python 基础(八):流程控制语句
🔥 Python 基础(九):列表
🔥 Python 基础(十):元组
🔥 Python 基础(十一):集合
🔥 Python 基础(十二):字典
🔥 Python 基础(十三):函数
🔥 Python 基础(十四):类和对象
热门专栏
👍 《Python入门核心技术》
👍 《IDEA 教程:从入门到精通》
👍 《Java 教程:从入门到精通》
👍 《MySQL 教程:从入门到精通》
👍 《大数据核心技术从入门到精通》













![[进阶]反射-认识反射、获取类](https://img-blog.csdnimg.cn/cc9e4e3b888640e48673f110e11cf96e.png)





