作者sandwichC (没回应=挂站)
看板Python
标题[翻译] Google 建议的 Python 风格指南 1
时间Thu Apr 25 22:31:04 2013
原文网址:
http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
在下曾在 Google 工作过,因此确知 Python 在 Google 内被广泛地使用 (至少几
年前是如此)。
这份 Google 建议的 Python 风格指南,与 Google 内部的 Python 建议风格只有
几个小地方不同,但这些相异处多半是因为语言演变及为了与旧的 code 一致所造
成的。整体而言,这份指南的实用程度相当高,其中很多建议也都列出施行的优缺
点及取舍的准则。
这份指南共有将近40点的建议,我计划在未来的几个月内逐条翻译。这个翻译不一
定会是逐字稿,有可能加上一点点个人的浅见。每篇文章可能只包含一两条建议,
有兴趣的人也欢迎插队把还没翻译的建议事项翻成中文。:p
----------正文开始的分隔线----------
背景
----
Python 是 Google 内部主要的脚本语言。本文将条列出 Python 的建议用法与应避
免的事项。
Vim 的使用者可以用这份设定档来格式你的程式:
http://google-styleguide.googlecode.com/svn/trunk/google_python_style.vim
若你使用 Emacs,使用预设的设定即可。
语言规则
--------
* pychecker
释义:
pychecker 有助於找到 Python 程式码中的臭虫。如同编译器能帮助编译式语言 (如
:C, C++) 找到一些语法或打字上的错误,pychecker 通常也能找到 Python 程式码
中类似的问题。另一个与 pychecker 类似的工具提 lint (编案:我自己常用的另一
个工具是 pyflakes)。然而,由於 Python 是一个动态语言,某些警告可能不正确,
但错误的警告并不常发生。
优点:
找出容易被忽略的错误,如:打错字、变数未赋值就直接使用等。
缺点:
pychecker 并不完美。实际上,有时我们仍需直接或间接地忽略它的讯息,或者想办
法改进程式。
决策:
永远使用 pychecker (或类似的程式) 来帮助写出更好的程式。
pychecker 的用法,请参照官网:
http://pychecker.sourceforge.net/
若必要,可以用 module-level 变数
__pychecker__ 来适度地隐藏警告,如:
__pychecker__ = 'no-callinit no-classattr'
这种有系统的警告隐藏方式能帮助事後搜寻并重新检视隐藏规则是否合宜。
pychecker 的警告项目条列,可从 pychecker --help 中找到。
若函式中一部份的输入参数在该函式中没被用到,pychecker 预设会提出警告。若要
隐藏此种警告,可以在该参数的名称前加上 "unused_"。若不想改变参数名称,可以
在函式的开头用下面的方法要求 pychecker 隐藏此警告。
def foo(a, unused_b, unused_c, d=None, e=None):
_ = d, e
return a
理想上,pychecker 应确认 "unused_b", "unused_c", "d", "e" 的确未被使用。然
而,笔者实际测试 pychecker 0.8.18 的结果,pychecker 目前并未做此确认。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 75.102.68.115
3F:→ uranusjr:SublimeCodeIntel recommended for Sublime Text users 04/25 22:54
4F:→ uranusjr:还有一个 SublimeLinter 有自动 PEP 8 检查 04/25 22:59
5F:推 Yoxem:或许可以M文? 04/25 23:22
6F:推 caty1010:期待大大继续分享 04/26 01:48
7F:推 BBBroflovski:期待分享+1 非常实用啊 04/26 02:21
8F:推 wangm4a1:推 04/26 02:24
9F:→ swpoker:可以偷问一下有java版吗 04/26 11:22
10F:推 swinds24:推!!! 很实用!!! 04/26 13:57
11F:推 ck574b027:原来这很实用啊,我还以为大家都知道,早知道也来翻一下 04/26 14:05
13F:→ ibmibmibm:可以转Translate_CS喔XD 04/26 16:04
14F:→ ibmibmibm:疑?已经转了XD 04/26 16:05
15F:→ sandwichC:ck574b027欢迎插队翻译 04/26 21:21
16F:推 POSIX:推阿! 04/26 22:37
17F:→ kilfu0701:推一个 04/27 02:15
18F:推 darkgerm:推!! coding style 真的很重要 04/27 13:11
19F:推 polarpolar:好翻译,不推吗? 05/01 01:54