Python代码文件结构详解

Python代码文件结构详解

015892

在正式讲解 Python 代码文件结构之前,我们有必要先了解一些相关的专业名词,使用Python语言编写的源代码,从粗到细可以分为模块文件、代码块、代码三部分。代码里又有“函数”和“类”两种概念。下面分别对他们进行介绍
模块文件:是指封装好的代码文件,可作为独立的模块被其他程序引用。

  • 代码块:可以理解成为一个容器,其中可放置一条一条语句。一个模块文件、一个函数体、一个类、交互式命令中的单行代码,都可以称作一个代码块。
  • 代码中的函数:在一个模块文件中,将若干条语句封装在一个代码块里以完成某个独立的功能,供其他程序使用。代码块是通过模块文件来承载的。
  • 代码中的类:以面向对象思想,将变量及函数封装成具有某个类别特性的结构体。它可以模块文件的形式单独提供,也可以与本地程序一起放在相同代码文件中。

了解了上述这些概念,下面正式介绍 Python 代码的文件结构。Python 的文件结构可以分为代码、模块、包。其中代码是组成程序的基本单位,是一条一条的具体语句。代码的载体是文件。Python 中的代码文件是以 .py 结尾的。下面分别介绍模块和包。

模块

在实现一个复杂程序时,需要编写的代码量往往很庞大。将所有的代码都放在一个文件里,显然很不合适。这时就需要将代码分割成多个文件,每个文件中放置功能相对独立的代码。在使用时,同时将多个文件中的代码导入到当前代码文件中,以实现完整的功能。这种被裁分后的仍具有独立功能的代码文件就是模块(Module)。概括地说,模块是一个支持导入功能的,以 .py 结尾的代码文件。

Python 模块(Module)包含了 Python 对象定义和 Python 语句。在模块里可以定义函数、类和变量。模块也能包含可执行的代码。把相关的代码分配到一个模块里,可以使代码更好用、更易懂。养成使用模块的习惯,开发者能更有逻辑地组织自己的 Python 代码段。

模块的主要作用是,用来被导入到其他代码模块中。将其他模块导入(import)到当前模块,可以理解成是对当前模块的一种功能增强。不同模块中的函数名和变量是可以相同的。模块的使用,避免了庞大代码量中函数名和变量名冲突的问题。另外,将代码模块化也提高了代码的可维护性与重用性。Python中的模块可以分为内置模块、自定义模块和第三方模块三类。

  • 内置模块:Python中本来就有的模块;
  • 自定义模块:自己开发的模块;
  • 第三方模块:需要单独下载、安装并导入的模块。

当模块足够庞大时,维护起来不太方便。这就需要使用包(Package)。包可以把多个模块(.py文件)放在同一个文件夹中,以便归类与管理。概括地说,包就是放置模块的文件夹。例如,下面代码是一个名字为 CycleGAN 对抗神经网络的目录:

图片[1]|Python代码文件结构详解

在上面的目录结构中,顶级包 CycleGAN 下面分为样本处理子包、模型子包和协调工作子包。每个子包里放有功能相近的模块。比如,模型子包里面放的模块都是关于各种模型的代码。

  • discriminator.py:用于实现判别器的模型;
  • generator.py:用于实现生成器的模型。

注意:在每个包文件夹里都必须包含一个init.py文件。该文件的作用是,告诉Python环境该文件夹是一个包。init.py可以是一个空文件。

© 版权声明
THE END
喜欢就支持一下吧
点赞2赞赏
分享
评论 抢沙发
HarryPotter的头像|艾奇编程网

昵称

取消
昵称表情