学习总结:python程序的组织结构

本文深入解析Python程序的组织层次结构,从包、模块、类到函数的详细划分,以及import语句的不同用法和特殊变量的作用,帮助读者理解Python项目如何构建与管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        从大局着眼从细节着手,在总体上把握住python程序的组织结构、工作机制原理,有利于有条不紊地开展深入学习研究与应用,能始终保持胸有成竹,从容不迫面对错综复杂局面。

一、组织层次结构

(一)从Python在处理功能复用和功能颗粒度划分的角度来分,由大到小:

1、包(Package),对应于一个含有“_init_.py”文件的文件夹(如没有,又当成包来调用,有的关联软件会在文件夹内生成一个__pycache__子文件夹),可以看成一种Python工程Project,包下面可以继续创建子包。

     包内包含了模块。

2、模块(Module),包含①类、②函数、③变量、④代码。

3、类(Class),包含函数、变量。

4、函数,实现某种功能。

(二)相关命令语句和变量属性

1、import导入模块

   (1)import  模块

   (2)import  模块 as 重命名

   (3)from module  import  member(模块、函数、变量)

   (4)from package.subpackage import module

   (5)import module与from module import * 两种模块导入的区别

          区别1:
              import module 引用共享变量时,要使用module.变量名。而from module import * 直接使用变量名即可

         区别2:
              import module方式操作module的变量时,本地不会创建新变量,操作的是目标模块的变量。from module import *方            式 操作module变量时,实质上是在本地创建一个与目标模块相同的变量名,并且默认与目标模块变量指向同一个内存空            间。

 2、__all__ = ['num1',]规定外部能引入的模块、函数、变量

 3、当包发生调用时,_init_.py内容会首先自动被执,这样可以在此设置__all__ ,当多个模块文件都需要用到一些模块文件时,可以在一个包的__init__.py文件中引入这些需要的模块文件,然后多个模块就可以共用。

4、__name__变量,是Python的内置变量,用于指代当前模块。为了区分主执行文件还是被调用的文件,Python引入了一个变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为'__main__'(如果文件是作为主程序调用,其值就设为main,如果是作为模块被其他文件导入,它的值就是其文件名)。这个特性,为测试驱动开发提供了支持,可以在每个模块中写上测试代码,这些测试代码仅当模块被Python直接执行时才会运行,代码和测试完美的结合在一起。
5、__path__变量,指定了包的搜索路径。

6、__init__ 方法与__new__方法,用在初始化一个类实例,__init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方法。

二、项目结构

       一个好的项目结构会让我们在开发中更加得心应手,事半功倍。

       对于Web项目,我们通常采用Flask或Django等框架,会有一套适合这种项目的工程目录。
       对于爬虫项目,通常有Scrapy等开源框架,也会提供一套适合这种项目的工程目录。
1、一位网友总结的Python通用目录结构
ProjectName 
│ readme 项目说明文档 
│ requirements.txt 存放依赖的外部Python包列表 
│ setup.py 安装、部署、打包的脚本 
├─ bin 存放脚本,执行文件等 
│ └─ projectname 
├─ docs 文档和配置 
│ └─ abc.rst 
│ └─ conf.py 配置文件 
└─ projectname 工程源码(包括源码、测试代码等) 
│ main.py 程序入口 
│ init.py 
└─ tests 测试代码 
└─ test_main.py 
└─ init.py
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值