• 模块
  • 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式
  • 在Python中,一个.py文件就称之为一个模块(Module)
  • 最大的好处是大大提高了代码的可维护性
  • 使用模块还可以避免函数名和变量名冲突
  • 导入模块import
import sys
import os

sys.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  • 分类
  • 标准库,执行help('modules')查看所有python自带模块列表  
  • 第三方开源模块,可通过pip install 模块名 联网安装
pip install prettytable
  • 自定义模块
import module

from module import xx

from module.xx.xx import xx as rename  

from module.xx.xx import *
  • 包Package
  • 对模块文件进行划分
  • __init__.py
  • 添加环境变量,把父亲级的路径添加到sys.path中,就可以了,这样导入 就相当于从父亲级开始找模块了
  • 跨模块导入,避免循环导入
  • 绝对相对导入 .. 不建议在项目里经常使用相对导入
  • 软件目录结构规范
  1. bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
  2. foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py
  3. docs/: 存放一些文档。
  4. setup.py: 安装、部署、打包的脚本。
  5. requirements.txt: 存放软件依赖的外部Python包列表。
  6. README: 项目说明文件
  • README
  • 软件定位,软件的基本功能
  • 运行代码的方法: 安装环境、启动命令等。
  • 使用说明
  • 目录结构说明
  • 常见问题说明

requirements.txt

  • 方便开发者维护软件的包依赖。将开发过程中新增的包添加进这个列表中,避免在setup.py安装依赖时漏掉软件包。
  • 方便读者明确项目使用了哪些Python包。
  • setup.py 管理代码的打包、安装、部署问题
  • 配置文件
  • 是可以灵活配置的,不受外部配置文件的影响
  • 程序的配置也是可以灵活控制的
  • 其他