python中的模块
在前面的学习中,其实我们已经接触过模块引入的方法:import random,所以我们可以使用 random 里面一系列的函数。在python里面有多种引入方式,这就是本节我们要学习的重点。
在了解模块导入之前,我们需要了解一下什么是模块:
- Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
- 模块让你能够有逻辑地组织你的 Python 代码段。
- 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
- 模块能定义函数,类和变量,模块里也能包含可执行的代码。
那么,模块主要有哪些种类呢,常见的模块包括一下三种:
- 内置模块:python 自带的模块,如 import os
- 第三方库模块:别人写好的模块,需要安装,pip install request
- 自定义模块:自己写的模块,通常放在包里面 from 包 import 模块
1、import 的用法
import的作用:利用 import 引入对应的模块,方便我们去调用模块里面的函数或者是类、变量。
我们新建一个test_package,并且在这个package下面分别存在一个sub_a的package以及一个sub_b的package,一个sub.py的模块文件,在sub_a 以及 sub_b里面分别有a.py 和 b.py文件,如下所示:
在 a.py 和 b.py 里面分别有一个加法函数、减法函数,代码如下所示:
下面我们学习如何使用import来引入a.py、b.py文件在sub.py里面完成调用,示范代码如下:
运行后的结果如下:
通过上面的引用,我们可以总结出如下内容:
- import 是引入模块文件,要具体到模块名称。
- 使用import方式导入模块,在调用时,要从根目录下面开始写。
- import 方式如果有多个层级时,中间用 . 号来进行连接。
2、from...import...的用法
文件的路径与前面一致,这里不再赘述,我们仍然在sub.py中调用a.py以及b.py文件,
1)第一种方法,具体到模块名。
示范代码如下:
- 我们不难发现如果使用了from ...import...,那么可以具体到模块名,在引用的时候就不用加前面的层级模块了,直接从import后面的a模块名开始调用,就可以完成调用。
- 引入时可以具体到模块名。
2)第二种方法,具体到函数
示范代码如下:
- import后面可以具体到函数名。
- 完成引用后,可以直接调用函数。
所以从代码的简洁性以及高效性角度考虑,比较推荐大家使用from...import 方式来导入模块。
另外,为大家扩展两个文件导入的小知识点,大家可以自行尝试。
- from ... import * :从模块当中导入所有的代码,就是可能会和这个模块里的函数重名
- from ... import sth as other :重命名,取别名,避免重复
3、补充知识
最后,为大家补充一个关于__name__的小知识:
- __name__:是表示当前文件的模块名
- 通过模块导入形式运行的,模块名称就是这个文件名====>>__name__ 就是文件名、模块名
- 直接运行的文件、脚本,__name__ 就不是文件名、模块名称,它是固定的:__main__
这个知识经常用来我们自己做代码调试的时候使用,示范代码如下:
即只有在本模块调试时,才会运行这段测试代码,当被其他模块调用时,这段测试代码将不被执行。在自动化测试过程中我们将会常用__name__来进行代码的调试。