目录
包
从专业的角度来解释的话
包就是内部含有__init__.py的文件夹
从实际的角度来解释的话
包就是多个模块的结合体(内部存放了多个模块文件)
eg:我们的电脑某个文件夹下面有很多不同类型的文件
视频文件、音频文件、文本文件、图片文件
为了方便管理我们会习惯性的创建不同的文件夹分类管理
学习视频
J老师视频合集
R老师视频合集
C老师视频合集
学习笔记
D老师经典语录
A老师经典语录
...
在pycharm中甚至直接提供了创建包的选项
本质就是文件夹里面有一个__init__.py文件
"""
在导入包的时候 索要名字其实是跟包里面的__init__.py要
1.如果想直接通过包的名字使用包里面所有的模块 那么需要在__init__.py中提前导入
上述方式的好处在于__init__可以提前帮你准备好可以使用的名字
2.也可以直接忽略__init__的存在使用绝对导入即可
上述方式的好处在于不需要考虑包的存在 直接当成普通文件夹即可
"""
包里面的__init__可以看成是你的管家
你可以吩咐它帮你做事 也可以直接架空它自己动手
编程思想演变
1.小白阶段
此阶段写代码就是在一个文件内不停地堆叠代码的行数(面条版本)
2.函数阶段
此阶段写代码我们学会了将一些特定功能的代码封装到函数中供后续反复调用
3.模块阶段
此阶段不单单是将功能代码封装成函数,并且将相似的代码功能拆分到不同的py文件中便于后续的管理
演变是为了更加方便、快捷、高效的管理资源
软件开发目录规范
为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。软件的目录规范并无硬性标准,只要清晰可读即可.
我们实际工作中编写的程序软件都是有很多文件夹和文件组成的
这些文件夹和文件其实都有各自存在的意义和主要功能
• core/: 存放业务逻辑相关代码
• api/: 存放接口文件,接口主要用于为业务逻辑提供数据操作。
• db/: 存放操作数据库相关文件,主要用于与数据库交互
• lib/: 存放程序中常用的自定义模块
• conf/: 存放配置文件
• run.py: 程序的启动文件,一般放在项目的根目录下,因为在运行时会默认将运行文件所在的文件夹作为sys.path的第一个路径,这样就省去了处理环境变量的步骤
• setup.py: 安装、部署、打包的脚本。
• requirements.txt: 存放软件依赖的外部Python包列表。
• README: 项目说明文件。
除此之外,有一些方案给出了更加多的内容,比如LICENSE.txt,ChangeLog.txt文件等,主要是在项目需要开源时才会用到,请读者自行查阅。ps:目录的名字可以不一致 但是主要的思想是一致的
关于README的内容,这个应该是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。
需要说明的事项:
1、软件定位,软件的基本功能; 2、运行代码的方法: 安装环境、启动命令等; 3、简要的使用说明; 4、代码目录结构说明,更详细点可以说明软件的基本原理; 5、常见问题说明。
关于setup.py和requirements.txt:
一般来说,用setup.py来管理代码的打包、安装、部署问题。业界标准的写法是用Python流行的打包工具setuptools来管理这些事情,这种方式普遍应用于开源项目中。不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。
requirements.txt文件的存在是为了方便开发者维护软件的依赖库。我们需要将开发过程中依赖库的信息添加进该文件中,避免在 setup.py安装依赖时漏掉软件包,同时也方便了使用者明确项目引用了哪些Python包。