改善python代码风格的一些建议

Emo0 2020/9/11 8:03:48

python作为一门动态的编程语言,有开发便捷的优势,但容易犯代码风格上的问题。本文旨在介绍一些让python代码规范的工具和实际运用场景。 工具推荐 用flake8进行代码静态扫描 flake8是一个强制的代码规范工具,flake8支持python2、python3的代码静态扫描,但flake8本身依…

python作为一门动态的编程语言,有开发便捷的优势,但容易犯代码风格上的问题。本文旨在介绍一些让python代码规范的工具和实际运用场景。


工具推荐

用flake8进行代码静态扫描

flake8是一个强制的代码规范工具,flake8支持python2、python3的代码静态扫描,但flake8本身依赖python3.5以上的版本。

flake8已插件的形式添加检测规则,能够支持自定义的规则的扩展。

flake8自带的插件有mccabe(代码负责度)pycodestyle(PEP8代码检查), pyflakes(python语法问题,单不检查代码样式)。此外还推荐3个插件:

flake8-print: 检测代码里的print https://github.com/JBKahn/flake8-print

flake8-bugbear: 增加了除pycodestyle和pyflakes之外的检查 https://github.com/PyCQA/flake8-bugbear

flake8-mypy:对代码进行type hints相关对检查 https://github.com/ambv/flake8-mypy

安装命令:pip3 install -i http://mirrors.aliyun.com/pypi/simple/

--trusted-host mirrors.aliyun.com

flake8 flake8-bugbear flake8-print flake8-mypy

用black进行代码格式化

black是一个不妥协的Python代码格式化工具,能够将代码自动按照PEP8的规范进行格式化。

图片描述

安装命令:pip3 install black

持续集成中的运用

git hook 中使用插件

建议将在pre-commit中添加 black 和 flake8 的命令进行commit之前的检查.

hooks在 ./.git/hooks/路径下,添加pre-commit文件,在里面写需要在commit之前执行的命令。例如将本次提交的代码进行用代码格式化并且进行静态扫描,pre-commit定义如下:

#!/bin/bash

# 获取本次提交的变动的文件

STAGE_FILES=$(git diff --cached --name-only --diff-filter=ACM -- '*.py' '*.js')

# black格式化代码

python3. 6 -m black $STAGE_FILES

# flake8代码静态扫描

python3.6 -m flake8 $STAGE_FILES

将代码检查加入到gitlab CI(持续集成)中

官方文档:https://docs.gitlab.com/ee/ci/

1.在项目中代码中的添加 gitlab-ci.yml 语法参考 https://docs.gitlab.com/ee/ci/yaml/README.html

2.为项目配置ci-runner,推荐时候用docker进行安装ci-runner, 参考《搭建自己的 Gitlab CI Runner》

每次push代码的时候都会触发一次build,根据gitalb-ci.yml中定义的步骤在runner中执行命令。例如在ci过程中加入代码静态扫描, .gitlab-ci.yml如下:

# .gitlab-ci.yml

  

image: "python:3.6"

  

before_script:

- python --version

- pip install

-i http://mirrors.aliyun.com/pypi/simple/

--trusted-host mirrors.aliyun.com

flake8 flake8-bugbear flake8-mypy flask

  

stages:

- Static Analysis

  

flake8:

stage: Static Analysis

script:

- flake8 --ignore=E501 --max-line-length=120

  
  

延展阅读:

Google 开源项目风格指南:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/content
PEP8 python编码风格:https://www.python.org/dev/peps/pep-0008/
PEP484 Type Hints:https://www.python.org/dev/peps/pep-0484/
Git 钩子 hook 介绍与使用:https://www.jianshu.com/p/f3d17c11bb8a
gitlab之gitlab-ci自动部署:https://www.jianshu.com/p/df433633816b

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[改善python代码风格的一些建议]http://www.zyiz.net/tech/detail-146911.html

上一篇:11 个最佳的 Python 编译器和解释器

下一篇:Python机器学习教程详解

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    关注微信小程序
    程序员编程王-随时随地学编程

    扫描二维码或查找【程序员编程王】

    可以随时随地学编程啦!

    技术文章导航 更多>
    扫一扫关注最新编程教程