4.4.1 模块的创建和使用

在 Python 语言中,模块对应于 Python 程序文件,即每个 Python 程序文件就是一个模块。 模块是 Python 程序的最高层结构单元,用于组织程序的代码和数据,以便能被同一程

序的其他模块甚至被其他程序重用。一个模块可以导入其他模块,导入后就可以使用其他模 块中定义的函数、类等对象。

用模块作为程序的结构单元,至少有三个作用:

(1)代码重用:将代码保存在能持久存在的文件中,就不会像在 Python 交互环境中键 入的代码那样随着退出 Python 而消失。模块中的代码可以多次加载运行,也可以被多个程 序使用。

(2)名字空间:模块是 Python 的最高层程序结构单元,在模块中定义的所有名字(函 数名、类名等)是局部于本模块的,与模块外部不会发生同名冲突。要想使用一个模块定义 的名字,唯一途径就是导入该模块。

(3)实现共享:模块对于实现全系统范围内代码和数据的共享也是很有用的,被共享 的东西只需保存一个副本。例如,如果需要为多个函数或模块提供一个全局对象,则可以将 它的定义置于一个模块中,然后其他使用者可以导入该模块,从而共享使用全局对象。

Python 模块很容易创建。只要使用任意的文本编辑器,键入一些 Python 语句并保存 为.py 文件,就得到一个 Python 模块。

为了使用 Python 模块中定义的对象,必须用 import 或 from 语句导入模块。import 的功能是导入模块整体,导入后为了访问模块定义的对象,必须在对象前加上模块名作为前 缀。例如,假设模块 mymod 中定义了我们需要用到的函数 func(),那么可以这样导入:

import mymod mymod.func()

另一种导入语句是 from 语句,用于导入模块中定义的特定名字(用*可以导入所有名字)。使用时不需要加上模块名作为限制。例如:

from mymod import func func()

注意,导入模块后,模块名就能像普通 Python 变量一样在程序中使用。因此模块名必须符合 Python 命名规则。