从这一章开始,我们将深入学习Python中的模块,模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便再利用,同时提供自包含的命名空间从而避免程序出现变量名冲突。从实际的角度来看,模块往往对应于Python程序文件。每一个文件都是一个模块,并且模块在导入其他模块之后就可以使用被导入模块中定义的名称。模块也可以是使用如C、Java或C#等其他语言编写的扩展包,甚至还可以是在包导入时的文件路径。模块可以用下面两个语句和一个重要的内置函数进行处理:
import
使用户程序(导入者)以一个整体获取一个模块
from
允许用户程序从一个模块文件中获取特定的名称imp.reload(在2.X中是 reload)
imp.reload (在2.X中是reload)
提供了一种在不终止 Python程序的情况下重新载入模块文件代码的方法
第3章介绍了模块的基础知识,而且我们之前也已经用到过这些知识。本部分的目标是扩展核心语言中的模块概念,然后开始探索更高级的模块用法。本部分的第一章回顾了模块的基础知识,并提供了模块在整个程序结构中所扮演角色的概览。在后面的章节中,我们将深入到理论背后的代码编写的细节。
在此过程中,我们将充实曾经忽略的模块的细节:你将学到重新加载、_name_和_all_属性、包导入、相对导入语法、3.3中的命名空间包等。因为模块和类实际上就是两种增强后的命名空间,我们也会在这里正式介绍关于命名空间的概念。
为什么使用模块
简而言之,模块是提供自包含的变量的包(也就是所谓的命名空间)从而将部件组织为系统的一种可行方式。一个模块文件顶层定义的所有