Python基础08 模块

来源:互联网 发布:windos系统mac怎么 编辑:程序博客网 时间:2024/06/08 18:42

作者:玉树【林】风

转自:http://techlin.cn

欢迎转载,也请保留这段声明。

 

什么是模块

在我们开发过程中,往往不会将所有的功能函数集中定义在同一个文件中。这样做即增加了未来维护的成本,也降低了并行开发的效率。通常我们会将不同的功能写在不同的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 areaprint(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 areaFuncsprint(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, circleprint(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 serviceAimport model.A as modelAimport view.A as viewA...

 

标准库

python提供了一套标准库,其中包括sys(命令行库)、os(操作系统库)、re(正则表达式库)、math(数学函数库)等等。

这些库伴随着python安装而存在,使用时只需要通过引入对应模块即可。在接下来的课程中,我们会慢慢的学习python常用标准库函数的用法。

 

总结

这节课我们了解了什么是模块

引入模块的几种方式

包的概念

标准库