python代码风格
pep8:Python代码风格检查工具
Python官网定义的代码风格 PEP 0008 – Style Guide for Python Code。
pep8是检测编码风格是否符合 PEP 0008 的工具。
安装pep8:
pip install pep8
升级pep8:
pip install --upgrade pep8
卸载pep8:
pip uninstall pep8
如果使用的是Ubuntu,还可以使用从apt仓库中安装:
$ sudo apt-get install pep8
使用示例
故意写几行不符合Python编码风格的代码(test.py):
import sys, os
from subprocess import Popen, PIPEdef long_function_name(var_one, var_two, var_three,var_four):print(var_one)
检查是否符合编码规范:
$ pep8 --first test.py
test.py:1:11: E401 multiple imports on one line
test.py:4:1: E302 expected 2 blank lines, found 1
test.py:6:5: E125 continuation line with same indent as next logical line
1、4、6行代码不符合规范
你还可以输出不符合规范的代码和原因:
$ pep8 --show-source --show-pep8 test.py
更多选项,查看帮助信息:
$ pep8 -h
使用代码测试(CodeStyle.py):
import pep8python_code_style_checker = pep8.Checker('test.py', show_source=True)
file_errors = python_code_style_checker.check_all()
print("Found %s errors (and warnings)" % file_errors)
参考:https://blog.csdn.net/lucyxu107/article/details/82626123
PyCharm 自动格式化 Python 代码
autopep8 是一个将 Python 代码自动排版为 PEP8 风格的工具,在 PyCharm 中直接格式化代码可以使用 autopep8。
一、autopep8 简介
使用 autopep8 前我们有必要先了解下 PEP 8 – Style Guide for Python Code
https://pypi.python.org/pypi/autopep8/
二、安装和使用 autopep8
autopep8 是一个开源的命令行工具,它能够将 Python 代码自动格式化为 PEP8 风格。autopep8 使用 pycodestyle 工具来决定代码中的哪部分需要被格式化,这能够修复大部分 pycodestyle 工具中报告的排版问题。autopep8 本身也是一个 Python 语言编写的工具,因此,我们可以直接使用 pip 进行安装:
pip install autopep8
我们来看一个完整的例子,本例中使用的代码如下:
import os, sys def main(): print [item for item in os.listdir('.') if item.endswith('.py')]; print sys.version if __name__ == '__main__': main()
这段代码存在三个问题:
- 导入的时候,应该每一行只导入一个包;
- 包导入和函数定义之间应该空两行;
- Python 代码末尾不需要分号。
接下来,我们将使用 pycodestyple 检查这段代码,然后使用 autopep8 将代码格式化成符合 PEP 8 风格的代码。
使用 pycodestyle 检查代码可检测到代码中有三个地方不符合 PEP 8 规范,如下所示:
pycodestyle hello.py
hello.py:1:10: E401 multiple imports on one line
hello.py:3:1: E302 expected 2 blank lines, found 1
hello.py:4:69: E703 statement ends with a semicolon
使用 autopep8 格式能够转换 Python 代码。在这个例子中,autopep8 顺利地帮我们修复了所有问题,如下所示:
$ autopep8 hello.py
import os
import sys def main(): print [item for item in os.listdir('.') if item.endswith('.py')] print sys.version if __name__ == '__main__': main()
这个时候如果查看源文件的话,会发现还是和原来一样,并没有修正为符合 PEP 8 规范的代码。前面说过,不指定 –in-place 选项,只会将结果输出到命令行。如果我们使用 –in-place 选项,将不会有任何输出,autopep8 会直接修改源文件。
$ autopep8 --in-place hello.py
三、Pycharm 安装 autopep8
Pycharm 安装 autopep8
pip 安装 autopep8: pip install autopep8
PyCharm -> Preferences -> Tools -> Extends Tools -> 点击 + 加号
Name: autopep8
Tools settings:
Programs: autopep8
Parameters: --in-place --aggressive --aggressive $FilePath$
Working directory: $ProjectFileDir$
Advanced Options -> Output Filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*
参考
- https://wsgzao.github.io/post/autopep8/
- http://lovesoo.org/add-autopep8-to-pycharm.html
参考:https://blog.csdn.net/simplehouse/article/details/90032248
sonarqube工具来测试代码风格
docker 安装sonarqube
docker run -e SONARQUBE_JDBC_USERNAME=root -e SONARQUBE_JDBC_PASSWORD=admin -e SONARQUBE_JDBC_URL='jdbc:mysql://192.168.11.127:30369/sonar?useUnicode=true&characterEncoding=utf8' -p 9000:9000 sonarqube:6.7.5
下载sonar-scanner 在项目文件夹下执行
sonar-scanner -Dsonar.projectKey=test -Dsonar.sources=. -Dsonar.host.url=http://127.0.0.1:9000 -Dsonar.login=6a14734cf871e3ed2d694bbb71dc8fd0b9193d8b
其中Dsonar.host.url为服务端地址,Dsonar.login为登录生成的token,这样就能在客户端检查代码,将结果发送到服务端了
python代码风格相关推荐
- Python 代码风格指南谷歌版
非常感谢我们的忠实读者 shendeguize,在后台留言告诉我,已经翻译了<谷歌Python代码风格指南> ,大家这样相互帮助,感觉真是太好. Update: 2020.01.31 Tr ...
- python代码风格指南_记录Python代码:完整指南
python代码风格指南 Welcome to your complete guide to documenting Python code. Whether you're documenting a ...
- PEP8 - Python 代码风格指南中英对照
PEP8 - Python 代码风格指南中英对照 Introduction A Foolish Consistency is the Hobgoblin of Little Minds Code la ...
- Google 内部的 Python 代码风格指南(译)
微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 来自:Why GitHub? 链接:https://github.com/shendeguize/GooglePyth ...
- Google内部 Python 代码风格指南(中文版)
文末有干货 "Python高校",马上关注 真爱,请置顶或星标 这是一位大佬翻译的Google Python代码风格指南,很全面.可以作为公司的code review 标准,也可以 ...
- 快快快收藏!!Google内部Python代码风格指南(中文版)
????????关注后回复 "进群" ,拉你进程序员交流群???????? 来源丨菜鸟学Python 这是一位大佬翻译的Google Python代码风格指南,很全面.可以作为公司 ...
- Google Python代码风格指南
谷歌Python代码风格指南 中文翻译 你好,我是zhenguo 这是关注我的一位粉丝翻译的Google Python代码风格指南,很全面.可以作为公司的code review 标准,也可以作为自己编 ...
- python代码风格_Python编码风格,看这篇就够了
如果有人问起 Python 程序员他们最喜欢 Python 哪一点,他们一定会提到 Python 的高可读性.确实,对于 Python 来说,其高可读性一直是 Python 这门语言设计的核心.一个不 ...
- 如何使用 Pylint 来规范 Python 代码风格
Pylint 是什么 Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8,具体信息,请参阅参考 ...
最新文章
- CRNN竞赛程序实现过程
- OS开发UI篇—popoverController使用注意
- 计算机网络平台实验,计算机网络实验
- 面试官都会问的Mybatis面试题,你会这样回答吗?
- JavaScript indexOf() 方法 和 lastIndexOf() 方法
- c语言烟花百度云,C语言实现放烟花的程序
- 1.7Oob 继承关系中构造方法的使用
- dfs序 + RMQ = LCA
- 第十二天--Property List和NSUserDefaults
- 浅谈SCOM Agent的心跳响应机制
- 京东淘汰“三类人”,近 18 万员工懵了?!
- ubuntu linux 启用root用户登录
- Tiff – 比较两种字体差异
- 冰点下载器手机版apk_冰点下载器官网
- Cassandra启动过程详解
- ACCV 2020 最受关注的 Top10 代码开源论文!
- iPhone中通过ics来添加农历与天气预报
- adams matlab 联仿 5DOF机械臂 建模以及联合仿真
- iOS大型项目开发架构
- 创面修复医疗器械行业概况及市场规模分析
热门文章
- 主进程退出后子进程还会存在吗?_[docker]从一个实例,一窥docker进程管理
- 超级计算机能算数学题吗,圆周率到底能不能算尽?人类拿超级计算机算了一下,结果不敢相信...
- vue项目中使用lib-flexible解决移动端适配
- 【java笔记】大数操作(BigIntegerBigDecimal)
- 【java笔记】StringBuilder类
- LeetCode 392 判断子序列
- 递归处理二叉树总结(附leetcode题)
- 开源数字媒体资产管理系统:Razuna安装方法
- Media Player Classic - HC 源代码分析 3:核心类 (CMainFrame)(2)
- MSU 出品的 H.264 编码器比较 (2011.5)