❤️ 博客主页:水滴技术
订阅专栏:Python 入门核心技术
支持水滴:点赞 + 收藏⭐ + 留言
大家好,我是水滴~~
本篇主要讲述 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 有两个方式来引用模块:
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))
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))
上面使用 from maths import *
引入模块,就不知道引入了哪些定义。其实我们可以通过 Python 自带的函数 dir()
来查看当前模块导入了哪些定义,如:
from maths import *
print(dir())
输出结果:
['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'sub']
从输出结果可以看出,不但有模块自有的定义,还包含引入的 maths
模块中的两个函数。
上面介绍的两个引入模块的方式,我们该如何选择呢?
使用
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 默认安装路径下的一些目录。
当然,我们也可以通过一些配置来引用不同目录下的模块,下面是三种方法:
可以在模块中使用 sys.path.append()
方法临时添加一个目录。
import sys
sys.path.append('E:\temp')
该方式只对当前模块生效。
.pth
文件(推荐)在 Python 的安装目录中,找到 Lib\site-packages
目录(我的目录为:D:\Python\Python311\Lib\site-packages
),在该目录中添加一个 .pth
文件,文件名没有要求,内容为要添加的目录。
这种方式对当前 Python 版本生效,也是我们推荐的一种方式。
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 教程:从入门到精通》
《大数据核心技术从入门到精通》