一、模块的简介
1、什么是模块
Python 模块是一个 Python 文件,定义了各种功能接口。
2、为啥使用模块
把复杂的功能封装为模块(又称为库),将功能实现的细节隐藏起来,使用该模块(库)的程序员不需要了解实现的细节。通过调用模块封装好的功能,
可以用仅仅几行 Python 代码实现某项复杂的功能,例如可以用一行代码就实现一个 Web 服务器。
3、模块的来源
- 内置的(python解释器自带的直接用,eg:time)
- 第三方的(别人写好的放在网上的,我们要想用,必须先下载才能用)
- 自定义的(我们自己写的,以后也可以传到网上去)
4、在Python中,总共有以下四种形式的模块:
- 自定义模块:如果你自己写一个py文件,在文件内写入一堆函数,则它被称为自定义模块,即使用python编写的.py文件
- 第三方模块:已被编译为共享库或DLL的C或C++扩展
- 内置模块:使用C编写并链接到python解释器的内置模块
- 包:把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
二、模块的导入
1、导入语法
import 句式
首次导入文件,会执行导入文件的代码
导入文件不管你导入几次,都只执行一次
导入文件的过程发生了什么事?
1. 运行执行文件,产生执行文件的全局名称空间
2. 运行md.py文件,会产生md文件的全局名称空间,把md文件里的名字都丢到md的全局名称空间去
3. 在执行文件中有一个md的变量,指向导入文件的空间地址
4. 以后我们在执行文件中就可以用md来点出导入文件中的名字
导入文件之后,以后在用导入文件中的名字,只需要使用md点语法的形式点出来就可以
不会与执行文件中的名字发生冲突,因为我们是指名道姓的取值
from 模块名 import *”
from md import money,read1,read2 # 一个模块下的不同函数,连续导入直观
通用导入
# from md import money, read1, read2, change,
from 模块名 import *
2、起别名
import xxx as xx
from xxx import xx as x
3、设置禁止被导用的部分模块功能
__all__ = ['money', 'read1']