3.3 模块

随着时间的推移,你将会发现你创建了大量小而有用的文字处理函数,结果你不停的把它们从老程序复制到新程序中。哪个文件中包含的才是你要使用的函数的最新版本?如果你能把你的劳动成果收集在一个单独的地方,而且访问以前定义的函数不必复制,生活将会更加轻松。

要做到这一点,请将你的函数保存到一个文件text_proc.py。现在,你可以简单的通过从文件导入它来访问你的函数:

  1. >>> from text_proc import plural
  2. >>> plural('wish')
  3. wishes
  4. >>> plural('fan')
  5. fen

显然,我们的复数函数明显存在错误,因为 fan 的复数是 fans。不必再重新输入这个函数的新版本,我们可以简单的编辑现有的。因此,在任何时候我们的复数函数只有一个版本,不会再有使用哪个版本的困扰。

在一个文件中的变量和函数定义的集合被称为一个 Python 模块。相关模块的集合称为一个包。处理布朗语料库的 NLTK 代码是一个模块,处理各种不同的语料库的代码的集合是一个包。NLTK 的本身是包的集合,有时被称为一个库。

小心!

如果你正在创建一个包含一些你自己的 Python 代码的文件,一定 要将文件命名为nltk.py:这可能会在导入时占据“真正的”NLTK 包。当 Python 导入模块时,它先查找当前目录(文件夹)。