第六节 模块(1 / 1)

1.模块简介

在程序开发过程中,随着代码长度的增加,代码维护的难度也会越来越大。为了编写更易维护的代码,可以把代码按功能分组,分别放在不同的文件里。可以简单地认为,在Python中,一个.py文件就是一个模块(Module)。

这种做法的好处在于,每个文件包含的代码相对较少,所实现的功能也相对简单。这种组织代码的方式并不是Python特有的,很多编程语言都会采用这种方法。例如,C语言中的头文件以及Java中的包就是与此类似的概念。

本节就来了解一下Python中模块的使用方法。通俗地说,模块可能包含了很多函数,就像是一个工具包,模块中的函数就像各种工具,同一模块中的工具一般可以协同工作或者具有一定的相似性。想使用这个工具包中的工具时,需要导入这个模块。例如,在Python中想使用开平方的函数sqrt,就必须通过导入math模块来实现这个功能。math模块中并不仅仅只包含开平方这个功能,很多与数学运算有关的功能都可以通过导入这个模块来实现。

2.import

在Python中使用关键字import来导入某个模块。例如,要使用模块math,需要在程序开始的地方用import math来导入。当执行程序时,如果解释器遇到import语句,而相应模块又位于当前的搜索路径,此模块就可以被成功导入。导入模块的示例如下。

第一步,把如下代码使用名称“sendmsg.py”保存下来,相当于创建了一个sendmsg模块。

#把代码保存成.py文件,作为一个模块

def test1( ):

print('---sendmsg——test1')

def test2( ):

print('---sendmsg——test2--')

第二步,在新文件(test.py)中使用import导入该模块。

#导入模块

import sendmsg

#使用模块

sendmsg.test1( )

sendmsg.test2( )

调用后输出的结果是:

---sendmsg--test1

---sendmsg--test2--

当导入某个模块后,该模块中包含的功能就可以使用了,使用其中某个函数的功能时需要按照“模块名.函数名”的格式。例如,导入math模块后,就可以使用开平方函数sqrt了。请在命令行窗口尝试用如下方式求9的平方根。

import math

math.sqrt(9)

输出结果为:

3.0

3.from...import

也可以通过如下方式直接导入某个模块中的特定函数。导入的语法如下。

from modname import name1[,name2[,...nameN]]

也就是说,Python的from语句可以实现从模块中导入一个特定的功能。例如,在上面的例子中,如果使用from…import,就不会把整个sendmsg模块导入到当前的命名空间中,而只会将sendmsg里的test1或者test2引入。如果使用import…,则会把一个模块的所有功能导入到当前的命名空间。

4.常见模块简介

Python有一套非常有用的标准库和扩展库。这些库会随着Python解释器一起安装在电脑中,它们是Python的组成部分。作为Python已经准备好的利器,可以通过直接导入使用其功能,从而让编程事半功倍。常用的标准库和扩展库如表2-5、表2-6所示。

表2-5 常用的标准库

表2-6 常用的扩展库

这些库中的某些模块,是在本教材后续的实践案例中经常需要使用的。在Python中,存在模块、库、包三个概念,它们之间有区别也有密切联系,简单起见,不再深入解释这些概念的差异,可以认为它们都是某些功能的组合体。

Python的学习不是一蹴而就的,虽然它入门很简单,但是要达到熟练使用的程度还需要长时间的学习和实践。学习Python最好的方式就是掌握了基本规则之后,在实践项目中逐渐摸索并熟悉它的用法和规律。本教材接下来章节的实践案例中,还会结合具体案例讲解相关的编程知识。