参考书 | Python 机器学习实战 |
---|---|
作者 | 裔隽 张怿檬 张目清 |
出版社 | 科学技术文献出版社 |
难度 | 入门 |
安排 | 计划:本章 15 分钟;作业:在VS Code中安装pylint插件,检查代码是否符合PEP8 |
PEP 是什么?
- PEP(Python Enhancement Proposals):规范和定义 Python 的各种增强和扩展功能的技术规范。
- PEP 的类型:
- 描述 Python 中的新功能
- 说明 Python 中的设计问题
- 关于 Python 的提案
- PEP 编号唯一且不变
- PEP 333:Web Server Gateway Interface 1.0
- PEP 498:Python3.6 新增的格式化字符串
- PEP 0: Index of Python Enhancement Proposals
PEP 8:Style Guide for Python Code
- 官方的 Python 编码规范,旨在提高代码的可读性,并且强调一致性。
- PEP 8 的核心思想:代码被阅读的时间远远多于被编写的时间,因此代码的可读性非常重要。
- 一个项目、一个模块、一个功能内都要保持一致性。
- 不要为了遵循规则而遵从规则,而使得代码更难理解
- 规范的 6 部分内容:
- 代码布局设计
- 字符串引用
- 在表达式和语句中使用空格
- 注释
- 命名规范
- 编码建议
PEP 8 - 代码布局设计
- 缩进:4 个空格
- 每行长度:79 个字符
- 续行:首选自动连接括号(方括号、花括号);垂直对齐时增加一级缩进
- 空行:顶层类和函数 2 空行;类中方法 1 空行;其它空行需要节约使用
- 文件编码:UTF-8
- 导入库包:
import
单独一行;相同的库可以合并;大部分应在顶部 - 导入顺序:标准库 ->第三方 ->本地和特殊;空行分开各类
- 导入方式:建议绝对路径;避免使用通配符
PEP 8 - 字符串引用
- 单引号双引号:虽然相同,但要统一;歧义时替换;尽量少用转义
PEP 8 - 表达式和语句中的空格
- 无需空格:括号两侧、逗号前、冒号前、分号前;切片冒号两边;函数调用的左括号前;优先级高的运算符或者操作符(
!c1 and c2
); 函数关键字参数和默认值参数前后 - 需要空格:二元运算符两侧;
- 多条语句不要同行
PEP 8 - 注释
- 注释应该是完整的句子
- 首字母大写,除非是需要小写的标识符
- 短注释可以省略末尾的句号
- 块注释应该由段落和完整的句子组成。段落最后的句号后面应该有 2 个空格
- 块注释在代码前,与代码缩进相同;每行
"# "
开头;分割行的 “#
” 后面没有空格 - 慎用行内注释:用则至少用 2 个空格分隔语句
- 公共模块、函数、类、方法:需要文档注释;位于 def 后面;结束时 3 引号要另起一行。
PEP 8 - 命名规范
- 模块:尽量简短的全部小写的名称;可加下划线
- 包:不推荐下划线(除非引用其他语言的扩展包)
- 类:驼峰;异常也是类,但是结尾应该加 “
Error
” - 函数:小写字母,下划线分隔
- 全局变量:同函数
- 函数和参数:小写;
self
和cls
;冲突则在最后加一个下划线 - 方法名和实例变量:同函数
- 常量:大写 + 下划线
- 缩写应全部大写