天天看点

Python基础08 模块

作者:玉树【林】风

转自: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 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常用标准库函数的用法。

总结

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

引入模块的几种方式

包的概念

标准库