python高级之软件开发的目录规范
1.学习Python相关软件的安装2.Pip换源及创建虚拟环境3.学习python的计算机基础4.Pycharm常用快捷键大全5.pycharm贴心大tips6.python基础之变量与常量7.python基础之数据类型8.python基础之用户交互9.python基础之基本运算符10.python基础之流程控制语句11.python中级之数据类型内置方法12.python中级之垃圾回收机制13.python中级之列表推导式14.python中级之字符编码15.python中级之文件操作16.python中级之异常处理17.python中级之深浅拷贝18.python高级之函数的定义和调用19.python高级之函数的参数20.python高级之装饰器21.python高级之迭代器22.python高级之函数对象与闭包函数23.python高级之名称空间和作用域24.python高级之模块25.python高级之包
26.python高级之软件开发的目录规范
27.python高级之生成器28.python面向对象之面向对象编程29.python面向对象之继承与派生30.python面向对象之抽象类31.python面向对象之多态与鸭子类型32.python面向对象之绑定与非绑定方法33.python面向对象之反射34.python面向对象之类的内置方法35.python面向对象之元类软件开发的目录规范
为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下
Foo/ |-- core/ | |-- core.py | |-- api/ | |-- api.py | |-- db/ | |-- db_handle.py | |-- lib/ | |-- common.py | |-- conf/ | |-- settings.py | |-- run.py |-- setup.py |-- requirements.txt |-- README
简要解释一下:
• core/: 存放业务逻辑相关代码 • api/: 存放接口文件,接口主要用于为业务逻辑提供数据操作。 • db/: 存放操作数据库相关文件,主要用于与数据库交互 • lib/: 存放程序中常用的自定义模块 • conf/: 存放配置文件 • run.py: 程序的启动文件,一般放在项目的根目录下,因为在运行时会默认将运行文件所在的文件夹作为sys.path的第一个路径,这样就省去了处理环境变量的步骤 • setup.py: 安装、部署、打包的脚本。 • requirements.txt: 存放软件依赖的外部Python包列表。 • README: 项目说明文件。
除此之外,有一些方案给出了更加多的内容,比如LICENSE.txt,ChangeLog.txt文件等,主要是在项目需要开源时才会用到,请读者自行查阅。
关于README的内容,这个应该是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。它需要说明以下几个事项:
1、软件定位,软件的基本功能; 2、运行代码的方法: 安装环境、启动命令等; 3、简要的使用说明; 4、代码目录结构说明,更详细点可以说明软件的基本原理; 5、常见问题说明。
关于setup.py和requirements.txt:
一般来说,用setup.py来管理代码的打包、安装、部署问题。业界标准的写法是用Python流行的打包工具setuptools来管理这些事情,这种方式普遍应用于开源项目中。不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。
requirements.txt文件的存在是为了方便开发者维护软件的依赖库。我们需要将开发过程中依赖库的信息添加进该文件中,避免在 setup.py安装依赖时漏掉软件包,同时也方便了使用者明确项目引用了哪些Python包。
这个文件的格式是每一行包含一个包依赖的说明,通常是flask>=0.10这种格式,要求是这个格式能被pip识别,这样就可以简单的通过 pip install -r requirements.txt来把所有Python依赖库都装好了,具体格式参照https://pip.readthedocs.io/en/1
当一个程序跨文件夹导另一个模块的函数: 绝对导入 1、 import sys sys.path.append(r'路径:目标模块的上一级') # 文件写死了 import src src.run() 2、 import sys sys.path.append(r'路径:直接顶级包') from core import src src.run() 3、 import sys sys.path.append(r'路径:直接顶级包') from core.src import run() run() 4、优化方案 import os import sys print(__file__) # 当前文件的绝对路径 print(os.path.dirname(os.path.dirname(__file__))) # E:\python\PyCharm 2023.2.1\workspace\ATM\03测试.py # E:\python\PyCharm 2023.2.1\workspace BASE_DIR=os.path.dirname(os.path.dirname(__file__)) sys.path.append(BASE_DIR) from core import src if__name__ = '__main__' src.run()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏