Python 是 Google主要的脚本语言,《Python语言规范》是Python风格指南的一部分,阐述了python的编程准则。而Python风格指南是Google 开源项目风格指南中Python部分,除此之外还有C++风格指南、Objective-C风格指南和Shell风格指南。
Google或许忘了还要出一本谷歌搜索风格指南吧。
Lint
对你的代码运行pylint。
定义:
Pylint是一个Python静态代码分析工具,它可以查找编程错误、帮助执行编码标准、嗅探代码气味(蛇皮味?)并提供简单的重构建议。对于C和C++这样的不那么动态的(译者注: 原文是less dynamic)语言,这些bug通常由编译器来捕获。由于Python的动态特性, 有些警告可能不对,不过伪告警应该很少。
维基百科是这么定义的,更宽泛一点:
在计算机科学中,lint是一种工具程序的名称,它用来标记源代码中,某些可疑的、不具结构性(可能造成bug)的段落。它是一种静态程序分析工具,最早适用于C语言,在UNIX平台上开发出来。后来它成为通用术语,可用于描述在任何一种计算机程序语言中,用来标记源代码中有疑义段落的工具。
最早开发lint工具的大佬是对洋娃娃情有独钟吧,百度翻译告诉我lint是“(敷伤口用的)纱布;(织物在制作过程中从表面掉落的)纤维屑,飞花;(毛料、棉布等的)绒毛”。
优点:
可以捕获容易忽视的错误,例如输入错误,使用未赋值的变量等。而对于逻辑错误就无能为力了,因此不能依赖pylint就不动我们的小脑袋了。
缺点:
pylint不完美,要利用其优势,取长补短,我们有时侯需要:
围绕着它来写代码
抑制其告警
改进它, 或者
忽略它
结论:
确保对你的代码运行pylint,抑制不准确的警告,以便能够将其他警告暴露出来。
如果pylint对你产生了某种误会,你可以通过设置一个行注释来抑制警告,例如:
dict = 'something awful' # Bad Idea... pylint: disable=redefined-builtin
pylint警告是以一个数字编号(如[scode] C0112 [/scode])和一个符号名(如 [scode]empty-docstring[/scode] )来标识的。在编写新代码或更新已有代码时对告警进行抑制,推荐使用符号名来标识。
如果警告的符号名不够见名知意,那么请对其增加一个详细解释。
采用这种抑制方式的好处是我们可以轻松查找抑制并回顾它们。
你可以使用命令 [scode]pylint --list-msgs[/scode] 来获取pylint告警列表,使用命令 [scode]pylint --help-msg=C6409 [/scode]以获取关于特定消息的更多信息。
相比较于之前使用的 [scode]pylint: disable-msg[/scode] , 本文推荐使用 [scode]pylint: disable[/scode] 。
要抑制”参数未使用”告警,你可以用”_”作为参数标识符,或者在参数名前加”unused_”。遇到不能改变参数名的情况,你可以通过在函数开头”提到”它们来消除告警。例如:
def foo(a, unused_b, unused_c, d=None, e=None):
_ = d, e
return a
Pylint官方网站:https://www.pylint.org/
Pylint它是高度可配置的,由特殊的程序来控制代码中的错误和警告,以及一个扩展的配置文件。也可以编写自己的插件来添加自己的检查或以某种方式扩展pylint。
除非另有说明,这是一个根据GNU通用公共许可证发行的自由软件。
开发托管在GitHub上:https://GitHub.com/PyCQA/pylint/
安装
pip一键安装大法:
pip install pylint
如果使用的是Python3.6+,升级以获得对版本的完全支持:
pip install pylint --upgrade
如果要从源发行版安装,提取文件后并切换到目录下执行:
python setup.py install
源下载地址:https://pypi.org/project/pylint/