作者:玉树【林】风
欢迎转载,也请保留这段声明。
什么是模块
在我们开发过程中,往往不会将所有的功能函数集中定义在同一个文件中。这样做即增加了未来维护的成本,也降低了并行开发的效率。通常我们会将不同的功能写在不同的py文件中,而这些py文件就称为模块。
import math
# 矩形面积
def rectangle(x, y):
return x * y
# 圆形面积
def circle(r):
return math.pi * r ** 2
# 三角形面积
def triangle(bottom, high):
return bottom * high / 2
这里我们新建了一个area.py模块,模块里面定义了3个函数,分别用来计算矩形面积、圆形面积以及三角形面积。
引入模块
当我们有了函数模块之后,还不能直接使用。需要先将模块引入后,才可以使用引入的模块。
1、import 模块
import area
print(area.rectangle(10, 5)) # 求边长为10,高为5的矩形面积
print(area.circle(8)) # 求半径为8的圆的面积
print(area.triangle(5, 5)) # 求底边长为5,高为5的三角形面积
使用import语句可以将我们上面编写的area模块的方法全部引入,再通过模块名.方法名进行方法的调用。
2、import 模块 as 别名
有些时候,我们定义的变量可能和模块名相同。这时我们可以修改变量名,或者给模块定义一个别名。
import area as areaFuncs
print(areaFuncs.rectangle(10, 5)) # 求边长为10,高为5的矩形面积
print(areaFuncs.circle(8)) # 求半径为8的圆的面积
print(areaFuncs.triangle(5, 5)) # 求底边长为5,高为5的三角形面积
3、from 模块 import 函数1,函数2...
通过这种方式引入模块,可以选择性的引入模块中的部分函数,并且调用方法时,不再需要加上模块名进行调用。
from area import rectangle, circle
print(rectangle(10, 5)) # 求边长为10,高为5的矩形面积
print(circle(8)) # 求半径为8的圆的面积
当然,我们也可以简单的通过下面的方式引入模块中的所有函数
from area import *
print(rectangle(10, 5)) # 求边长为10,高为5的矩形面积
print(circle(8)) # 求半径为8的圆的面积
print(triangle(5, 5)) # 求底边长为5,高为5的三角形面积
包
当我们的工程规模进一步的扩大,我们的模块文件可能需要分别放在不同的文件夹中,甚至模块文件可能出现同名。这时我们就可以使用python的包管理。
例如:
工程文件结构如下
main.py
/service/A.py
/serviec/B.py
/model/A.py
/model/B.py
/view/A.py
/view/B.py
如果需要在main.py中引入/service/A.py、/model/A.py、/view/A.py。我们可以这样引入。
import service.A as serviceA
import model.A as modelA
import view.A as viewA
...
标准库
python提供了一套标准库,其中包括sys(命令行库)、os(操作系统库)、re(正则表达式库)、math(数学函数库)等等。
这些库伴随着python安装而存在,使用时只需要通过引入对应模块即可。在接下来的课程中,我们会慢慢的学习python常用标准库函数的用法。
总结
这节课我们了解了什么是模块
引入模块的几种方式
包的概念
标准库