文章目录
- 什么是模块
- 模块的创建与使用
- 模块的导入
- 模块的搜索
- 搜索顺序
- 配置搜索路径
- 包导入实例
什么是模块
学过C语言的都知道,如果要使用sqrt函数
,必须要用语句 #include <math.h>
引入 math.h
这个头文件,否则无法正常调用sqrt
函数的的。
那么在Python中,如果要引用一些其它的函数,该怎么处理呢?
在Pyhon中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt
函数,必须用import
关键字引入math
这个模块。
说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块。
作用
- 提高了代码的可维护
- 提高了代码的可重用性
- 避免了函数名和变量名冲突
- 实现服务和数据的共享
模块的创建与使用
模块的导入
模块的导入三种方式
import x
from X import *
from X import a,b,c
as语句对导入的模块进行重命名,这样在之后就可以就重命名的名字来使用这个模块了。
from X import *
会取得模块顶层所有赋了值的变量名。
简单地说,在执行a.py
,import b
时,会把b.py
的代码除了 __name__ == 'main'
的部分外都执行一遍。
而
from b import pi
等价于
import b
pi = b.pi # 赋值
del b
之前from b
再import b
并不会把b.py
再执行一遍,但现在可以获取b.lst
,且发现b.lst
已经被更改了,因为列表是引用变量。
需要注意的情况
模块的搜索
搜索顺序
配置搜索路径
包导入实例
实例
作用
- 包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为
__init__.py
文件,那么这个文件夹就称为包。 - 有效避免模块名称冲突问题,让应哟组织结构更加清晰。
- 包可以逐层嵌套,导入时用点号运算符逐层引用。