神剑山庄资源网 Design By www.hcban.com

一定要注重代码规范,按照平时的代码管理,可以将Python代码规范检测分为两种:

  1. 静态本地检测:可以借助静态检查工具,比如:Flake8,Pylint等,调研了一下,用Flake8的相对较多,功能满足,本文将使用Flake8
  2. git:可借助git hooks,本文推荐使用pre-commit。

 静态本地检测

Flake8包装了Pyflakes、Pycodestyle和McCabe,也可以自定义插件。功能包括:

  • 检查代码是否符合PEP8
  • 检查是否包含语法错误和未使用的变量和导入
  • 检查代码的复杂度

pip install flake8

配置

推荐在pycharm中配置flake8:

深入浅析Python代码规范性检测

参数说明:

  • Program中填写Flake可执行文件的具体路径
  • arguments中可添加自定义参数,比如设置每行的最大字符数,过滤某些文件(夹)等。

安装完了之后单击就可以检测了:

深入浅析Python代码规范性检测

执行检测之后,如果出现 exit code 0 就说明代码规范,否则可按照提示进行整改。

pre-commit

官网: https://pre-commit.com/

介绍:

使用git的话,可以使用pre-commit钩子,在调用 git commit 命令时会自动执行脚本进行检测,若代码出错,则不会commit成功。

作用:

  • git commit命令之前对代码进行规范性检测
  • 按照配置,对一些不符合规范的代码自动更新为规范的(比如:填充空格、更新import等)
  • 提示更新之后仍不符合规范的代码

安装

pip install pre-commit

Linux中安装完成即可执行pre-commit命令,Windows中需将.exe的路径添加至环境变量,方可执行pre-commit命令。

配置

在项目根目录下添加.pre-commit-config.yaml文件。

可参考官网样例,:

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
 rev: v2.3.0
 hooks:
 - id: check-yaml
 - id: end-of-file-fixer
 - id: trailing-whitespace
- repo: https://github.com/psf/black
 rev: 19.3b0
 hooks:
 - id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
 rev: v2.3.0
 hooks:
 - id: flake8
  args:
  - --max-line-length=120

具体的配置可结合官网或github中的说明文档进行相关配置更新。

安装

执行 pre-commit install 命令,会在.git/hook路径下生成pre-commit文件,这样就保证了pre-commit安装成功,可以正常使用了。

然后执行:

更新配置文件只需要执行 pre-commit install 即可。

使用

配置完成之后,在 git commit 之前都会执行刚才的配置,可根据执行的结果来更新或者提交代码。

标签:
Python代码规范性检测,Python代码规范

神剑山庄资源网 Design By www.hcban.com
神剑山庄资源网 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
神剑山庄资源网 Design By www.hcban.com

评论“深入浅析Python代码规范性检测”

暂无深入浅析Python代码规范性检测的评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。