python程序员开发规范

本文介绍两个python开发工具(flake8,black),并结合pycharm,pre-commit进行使用。

flake8

  • 基于PEP8的静态代码检查工具。有助于约束团队使用统一的代码规范。
  • 安装 pip install flake8
  • 指定文件检查 flake8 path/code.py
  • 指定目录检查 flake8 path
  • 忽略指定错误 flake8 --ignore E24,W504 path
  • 指定配置文件 flake8 --config path1/.flake8 path2 (linux下默认查找用户目录)
  • 代码指定行忽略检查 # noqa
  • 异常快速定位

配置文件模版

1
2
3
4
5
6
7
8
[flake8]
ignore =
E203 # whitespace before ':'
E741 # ambiguous variable name 'l'
filename =
exclude =
max-line-length = 89
max-complexity = 10 # 指定代码最高复杂度

windows下配合pycharm使用
File->Settings->Tools->External Tools->add
pycharm.flake8.png

black

  • flake8经常会检查出代码格式上的异常,手动修改实在烦人,这时候推荐使用这款自动格式化代码神器,从此团队code review只需要关注代码业务逻辑
  • 基本不需要自定义配置文件(虽然支持),相较于pylint需要各种自定义设置,black的极简哲学让我想到了iphone,”产品来告诉你你真正想要的”(产品决定需求)
  • 安装 pip install black
  • black –diff path/code.py 输出格式化差异
  • black path/code.py 自动格式代码(简单暴力)

windows下配合pycharm使用
File->Settings->Tools->External Tools->add
pycharm.black.png

配合使用pre-commit

  • 安装 pip install pre_commit
  • 创建配置文件 touch .pre-commit-config.yaml
  • 初始化 pre-commit install
  • 垃圾回收 pre-commit gc

配置模版

1
2
3
4
5
6
7
8
9
10
repos:
- repo: https://github.com/ambv/black
rev: stable
hooks:
- id: black
language_version: python3.6
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.2.3
hooks:
- id: flake8

-------------The End-------------
坚持原创技术分享,您的支持将鼓励我继续创作!