Python程序设计基础
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 Python语言源程序的书写格式与基本规则

2.1.1 Python语言源程序模块结构初识

一个Python程序可能由一个或多个模块组成。模块是程序的功能单元。Python模块的典型结构与布局如图2-1所示,假设该模块的名字为Universe。

图2-1 Python模块的典型结构

(1)模块文档

模块文档使用三引号注释的形式,简要介绍模块的功能及重要全局变量的含义。在本例中,用户可以用Universe.__doc__来访问这些内容,可获知该模块的功能信息。

(2)模块导入

导入需要调用的其他模块。模块只能被导入一次,被导入模块中的函数代码并不会被自动执行,只能被当前模块主动(显式)调用。在本例中,导入了Python的内置模块。导入模块后,后续代码就可以使用(调用)这个模块中已定义的各种功能函数了。

(3)变量定义

在这里定义的变量本模块中的所有函数都可直接使用(全局变量,将在第6章中详述)。初学者往往图方便而习惯在这里使用全局变量,但当程序较为复杂时,可能会降低程序的可读性且较为浪费存储资源。

(4)类定义语句

所有类都需要在这里定义。当模块被导入时,class语句会被执行,类就会被定义。在本例中,类的文档变量是UniverseClass.__doc__。

(5)函数定义语句

此处定义的函数可以通过Universe.BigBang()在外部被访问到,当本模块被其他模块导入时def语句会被执行,其他模块可调用BigBang这个函数。该函数的文档变量是BigBang__doc__。

(6)主程序

无论这个模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码。通常这里不会有太多功能性代码,而是根据执行的模式调用不同的函数。

本例中出现在模块最后的代码是常见的“定式”:检查__name__变量的值然后再执行相应的调用。分为两种情形:

●在Python的集成开发环境IDLE中打开模块文件Universe.py,按功能键F5可以运行该模块。这时__name__变量的值为'__main__',因此执行函数BigBang,以实现“自动运行”。

●如果该模块是被其他模块导入的,或者是在IDLE命令行提示符“>>>”后面被导入的,这时__name__变量的值为'Universe',if条件不成立,因此不做任何事情(不会自动执行函数BigBang)。函数BigBang只可在后续代码中被显示调用。