购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 Python包和模块

软件项目通常包含许多源文件,又叫模块(module)。一系列相关联的Python模块组成包(package)。我们对Python的学习就从这两个概念开始。

1.1.1 Python模块

Python模块是指包含Python代码的文件,可以被其他Python模块或脚本导入。脚本(script)则是可以被执行的Python文件。

Python模块能够使不同文件之间共享代码,避免重复工作。

每个Python文件都可以访问一个名为__name__的全局变量,此变量有两个可能的值:

❍模块名称,即不包括.py后缀的文件名;

❍'__main__'字符串。

Python根据该文件是由其他模块导入还是作为脚本运行来决定变量__name__的值。当该模块被导入另一个模块或脚本时,__name__被设置为模块的名称。如果将模块作为脚本运行,如下所示:

则__name__的值会被设置为'__main__'。这可能有点抽象,不过我们将在本章的后面部分解释为什么我们要关注这个全局变量。你会发现,一个模块是被导入还是作为脚本运行,这个信息非常重要,我们需要关注。

随着我们为项目编写的Python模块越来越多,将这些模块根据功能进行分组也顺理成章。这些分组被称为包。

1.1.2 Python包

包(package)是包含Python模块和特殊文件的目录,该文件的名称必须是__init__.py。Python解释器会将任何包含__init__.py文件的文件夹视作一个包。

例如,如下文件夹就是一个Python包,名为geom2d:

这个包有两个文件:point.py和vector.py。

每当从包中导入某些内容时,__init__.py文件都会被执行。也就是说,__init__.py文件可以包含Python代码——通常是初始化代码。不过大部分时候,__init__.py都是空文件。 AnyhZtn9vpvIMt9Wd1z00E4j/lVddjZXnC2DNqsHwpcFt+CGixXJAV9mGxWgJwyC

点击中间区域
呼出菜单
上一章
目录
下一章
×