|
|
|
|
移动端

2.6.2 使用pycodestyle检查代码规范

《Python Linux系统管理与自动化运维》第2章Python生态工具,在本章中,我们将依次介绍Python生态的各种工具,包括:Python内置的小工具(2.1节);包管理工具pip(2.2节);Linux和Windows下的Python编辑器(2.3节);Python交互式编程工具(2.4节);Python调试器(2.5节);Python代码规范检查工具(2.6节)。本节为大家介绍使用pycodestyle检查代码规范。

作者:赖明星来源:机械工业出版社|2017-09-28 16:26

技术沙龙 | 4月21日多位区块链专家进行区块链技术应用场景解读!


2.6.2 使用pycodestyle检查代码规范

前面说过,PEP 8只是Python官方给出的Python编程风格指导手册,并没有强制大家都遵守PEP 8规范。但由于大家都使用PEP 8编码风格,PEP 8已经成为了事实上的代码风格标准。既然是标准,那么就应该有工具来检查这个标准,以帮助Python初学者规范自己的代码,帮助开源社区的协作者形成统一的代码风格。

遵循相同的代码风格非常重要,特别是需要与其他开发者一起维护同一个项目。为了帮助大家形成统一的代码风格,Python官方提供了同名的命令行工具,该工具能够检查Python代码是否违反PEP 8规范,并对违反PEP 8规范的地方给出相应的提示信息。

  1. $ pip install pep8 

读者可以看到,Python官方的代码规范称为PEP 8,这个检查代码风格的命令行工具叫pep8,很容易引起困惑。因此,Python之父提议将pep8这个命令行工具重命名为pycodestyle。接下来看一下pycodestyle的使用。

通过pip安装即可:

  1. $ pip install pycodestyle 

对一个或多个文件运行pycodestyle,打印检查报告。

  1. $ pycodestyle --first optparse.py  
  2. optparse.py:69:11: E401 multiple imports on one line  
  3. optparse.py:77:1: E302 expected 2 blank lines, found 1  
  4. optparse.py:88:5: E301 expected 1 blank line, found 0  
  5. optparse.py:222:34: W602 deprecated form of raising exception  
  6. optparse.py:347:31: E211 whitespace before '('  
  7. optparse.py:357:17: E201 whitespace after '{'  
  8. optparse.py:472:29: E221 multiple spaces before operator  
  9. optparse.py:544:21: W601 .has_key() is deprecated, use 'in'  
  10.  
  11. $ pep8 optparse.py  
  12. optparse.py:69:11: E401 multiple imports on one line  
  13. optparse.py:77:1: E302 expected 2 blank lines, found 1  
  14. optparse.py:88:5: E301 expected 1 blank line, found 0  
  15. optparse.py:222:34: W602 deprecated form of raising exception  
  16. optparse.py:347:31: E211 whitespace before '('  
  17. optparse.py:357:17: E201 whitespace after '{'  
  18. optparse.py:472:29: E221 multiple spaces before operator  
  19. optparse.py:544:21: W601 .has_key() is eprecated, use 'in' 

通过--show-source显示不符合规范的源码,以便工程师进行修正,如下所示:

  1. $ pycodestyle --show-source --show-pep8 testsuite/E40.py  
  2. testsuite/E40.py:2:10: E401 multiple imports on one line  
  3. import os, sys  
  4.          ^  
  5.     Imports should usually be on separate lines.  
  6.  
  7.     Okay: import os\nimport sys  
  8.     E401: import sys, os 

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员必读——网络组建

本书以一个模拟局域网组建为思路,介绍了与局域网组建各主要方面相关的知识及组建、配置方法。本书所介绍的内容主要包括:局域网组建规划、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊