第17章 模块和包的设计
Python为我们提供了一些高层面上的结构来组织软件。在第1部分“用特殊方法实现Python风格的类”中,我们介绍了一些如何使用类定义正确地将结构和行为进行绑定的技巧。在本章中,将介绍如何使用模块对类、函数和全局对象进行封装。关于模块的组织,会使用包作为一种设计方案来对相关模块进行组织。
在Python中,创建简单的模块很容易。任何时候,我们在创建一个Python文件的同时就创建了一个模块。随着设计范围的扩大以及复杂度的增加,需要使用包对模块进行组织,从而使维护更清晰,这点很重要。
我们也会有一些特殊模块。对于大的应用来说,我们会实现一个main模块。这个模块用于给应用提供OS命令行接口。它的设计不能阻碍应用中简单的重用,这样才能创建更大、更复杂的应用。
在选择如何安装模块上也有一些灵活性。可以使用默认的安装目录、环境变量的设置、.pth文件以及Python的lib/site-packages目录,它们都各有优缺点。
在分发Python代码时,我们要避免复杂的问题。有很多技术可以用于创建一个Python项目的源代码分支。有些不适用于面向对象设计。在Python标准库的第30章中,解决了一些物理文件包的问题,在分发Python模块的文档中,在创建代码分支上提供了一些信息。
