Python 基础(十五):模块

文章目录

  • 一、什么是模块
  • 二、自定义模块
  • 三、引用其它模块
    • 3.1、使用 `import` 引用模块
    • 3.2、使用 `from...import` 引用模块
    • 3.3、查看导入了哪些定义
    • 3.4、该选择哪种方式引入模块呢?
  • 四、模块的搜索路径
    • 4.1、临时添加
    • 4.2、增加 `.pth` 文件(推荐)
    • 4.3、在 `PYTHONPATH` 环境变量中添加
  • 系列文章
  • 热门专栏


大家好,我是水滴~~

本篇主要讲述 Python 中的模块,主要内容有:模块的概念、自定义模块、如何引用其它模块、以及模块的搜索路径。

一、什么是模块

通常情况,我们会把能够实现某一特定功能或一系列相关功能的代码,放到一个模块中,从而方便其他程序或脚本导入并使用,提高了代码的复用性。

Python 有很多自带的模块,称为标准库,通过它们可以实现很多常见的功能。例如:sysdatetimeoslogging 等。

Python 还具有非常丰富的第三方模块,称为第三方库,通过它们可以实现很多特色的功能。例如:requestsseleniumPyPDF2matplotlibDjango 等。

二、自定义模块

自定义模块首先要创建一个 Python 文件,文件命名为:模块名 + .py,其中模块名不能使用 Python 自带模块的名称。

下面我们 使用 IDLE 来创建一个模块:在 IDLE 菜单中选择【File】-【New File】,即可打开编辑窗口,在编辑窗口中编写模块的内容(下面模块中,实现了“加法”和“减法”两个函数)。

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


这样,一个模块就创建好了。

三、引用其它模块

上面我们自定义了一个模块 maths.py,那么我们该如何使用它呢?要使用它,首先就是引用它,即将模块加载到要使用的模块中。Python 有两个方式来引用模块:

3.1、使用 import 引用模块

我们在相同的目录中创建一个 tests.py 模块,并通过 import 来引入自定义的 maths 模块,下面就可以通过这个模块名来调用它的函数了,如下图:


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

如果使用了别名,那么在使用的时候,就用别名来调用模块中的函数:

import maths as mprint(m.add(3, 1))
print(m.sub(3, 1))

3.2、使用 from...import 引用模块

前面使用 import 语句引入模块,必须使用模块名来调用对应的函数或变量,而 from...import 就不一样了,下面一起来看下。

使用 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、该选择哪种方式引入模块呢?

上面介绍的两个引入模块的方式,我们该如何选择呢?

四、模块的搜索路径

上面例子中,maths.pytests.py 模块在同一个目录下,所以可以引用。如果放在不同模块,还能引用吗?显然是不行的,因为模块引用时,是按照搜索路径来的。

可以使用 sys 模块的 path 变量来查看搜索路径:

import sysprint(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 syssys.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://my.lmcjl.com/post/4984.html

展开阅读全文

4 评论

留下您的评论.