Python 高手之路 笔记 第1章 项目开始

时间:2020-9-6 作者:admin


1.1 Python 版本

问题:我的软件应该支持哪些 Python 版本?

回答:Python 2 已于 2020年1月1日停止更新和维护;最新稳定版本为 Python 3.8

1.2 项目布局

项目结构应该保存简单,谨慎使用包和层次结构:过深的层次结构在项目导航时变得复杂;过平的层次结构会使项目变得臃肿。

一个标准的目录结构如下:

.
├── README.md
├── bin
├── data
├── docs
│   ├── conf.py
│   ├── index.rst
│   └── quickstart.rst
├── etc
├── foobar
│   ├── __init__.py
│   ├── cli.py
│   ├── storage.py
│   └── tests
│       ├── __init__.py
│       ├── test_cli.py
│       └── test_storage.py
├── requirements.txt
├── setup.py
├── test-requirements.txt
└── tools

1.3 版本编号

PEP440 中定义版本号应该遵从一下正则表达式的格式:

N[.N]+[{a|b|c|rc}N][.postN][.devN]

需要注意的点:

  • 1.2 等于 1.2.0,1.3.4 等于 1.3.4.0 依此类推
  • N[.N]+ 相匹配的版本被认为是最终版本
  • 基于日期的版本被认为是无效的(如2020.09.01)
  • N[.N]+aN 表示 alpha版本 ,版本不稳定或缺少某些功能
  • N[.N]+bN 表示 beta版本 ,版本功能已完整,但可能存在 bugs
  • .postN 表示 后继版本 ,用来解决发行过程中的小问题
  • .devN 表示 开发版本 ,质量基本合格的发布前的版本

更高级的版本号,可以使用 PEP426 中定义的 源码标签

pbr 基于项目的 Git 版本自动生成版本号

1.4 编码风格与自动检查

Python 代码规范 PEP8 标准

  • 每个缩进层级使用4个空格。
  • 每行最多 79 个字符。
  • 顶层的函数或类的定义之间空两行。
  • 采用 ASCII 或 UTF-8 编码文件。
  • 在文件顶端,注释和文档说明之下,每行 import 语句只导入一个模块,同时按照标准库、第三方库和本地库的导入顺序分组。
  • 在小括号、中括号、大括号之间或逗号之前没有额外的空格。
  • 类的命名采用骆驼命名法;异常的定义使用 Error 前缀;函数的命名使用下划线分割小写字母;使用下划线开头定义私有的属性或方法。

pep8 工具自动检查 Python 文件是否符号 PEP8 要求。

其他的一些检查编码错误的工具。

  • pyflakes
  • pylint
  • flake8
  • hacking
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。