Python PEP8-中文版-全文(1)

Python PEP8-中文版-全文(1)

PEP 8——Python代码风格指南
PEP: 8
标题:Python代码风格指南
版本:c451868df657
Last-Modified: 2016-06-08 10:43:53 -0400(2016年6月8日星期三)
作者:guido van Rossum

介绍

本文给出了主要Python发行版中标准库的Python代码的编码约定。请参阅配套信息PEP,其中描述了Python[1]的C语言实现中C代码的风格指南。

本文和PEP 257(文档字符串约定)改编自Guido最初的Python风格指南文章,并添加了一些Barry的风格指南[2]的内容。

随着语言本身的变化,过去的约定也会被淘汰,因此这个风格指南也会随着时间的推移而演变。

许多项目都有自己的编码风格指南。在发生任何冲突的情况下,此类特定于项目的指南优先于该项目。

愚蠢的一致性是小心眼的妖怪

Guido的一个重要见解是,代码被阅读的频率远远超过它被编写的频率。这里提供的指南旨在提高代码的可读性,并使其在广泛的Python代码中保持一致。正如PEP 20所说,“可读性很重要”。

风格指南是关于一致性的。与这个风格指南保持一致很重要。项目中的一致性更为重要。一个模块或功能的一致性是最重要的。

然而,要知道什么时候不一致——有时风格指南的建议并不适用。当你怀疑的时候,用你最好的判断。看看其他的例子,并决定什么看起来最好。不要犹豫,尽管问!

特别是:不要仅仅为了遵循这个PEP!

忽略某个特定准则的其他一些好理由:

1.当应用该指导方针时,代码的可读性会降低,即使对于习惯阅读遵循该指导方针的代码的人也是如此。
2.与周围的代码保持一致,但也会破坏它(可能是由于历史原因)——尽管这也是一个清理别人的混乱的机会(以真正的XP风格)。
3.因为所讨论的代码早于指南的引入,并且没有其他原因来修改该代码。
4.当代码需要与不支持风格指南推荐功能的旧版本Python保持兼容时。

代码布局

缩进

每层缩进使用4个空格。

接续行应使用Python的隐式行连接在括号、括号和大括号内垂直对齐换行元素,或使用挂缩进[7]。当使用悬挂缩进时,应考虑以下事项;第一行不应该有任何参数,并且应该使用进一步缩进来清楚地区分自己是接续行。

应该的:

#以起始定界符对齐。
Foo = long_function_name(var_one, var_two,
						 var_three var_four)

#包含更多缩进以区别于其他代码。
def long_function_name (
						Var_one, var_two, var_three,
					    var_four):
	print(var_one)

#悬挂缩进应该添加一个层级。
Foo = long_function_name(
	var_one var_two,
	var_three var_four)

错误的:

#不使用垂直对齐时,禁止将参数放在第一行。
Foo = long_function_name(var_one, var_two,
	var_three var_four)

#需要进一步缩进,因为缩进是不可区分的。
def long_function_name (
	Var_one, var_two, var_three,
	var_four):
	print(var_one)

4空格规则是可选的,用于接续行。

可选:

#挂起的缩进* *可以* *缩进到4个空格以外的地方。
Foo = long_function_name(
  var_one var_two,
  var_three var_four)
  
'''
当if语句的条件部分足够长,需要写多行时,
值得注意的是两个字符的关键字(即if),
加上一个空格,再加上左括号,
为多行条件语句的后续行创建了一个自然的4个空格的缩进。
这可能会与嵌套在if-语句中的缩进代码产生视觉冲突,
if-语句自然也缩进为4个空格。
PEP没有明确说明如何(或是否)从视觉上区分这些条件行与if语句中的嵌套套件。
在这种情况下,可接受的选项包括但不限于:
'''
#没有额外的缩进。
if (this_is_one_thing and
	that_is_another_thing):
	do_something ()

#添加注释,这将为编辑器提供一些区别
#支持语法高亮。
if (this_is_one_thing and
	that_is_another_thing):
	#由于两个条件都为真,我们可以frobnicate。
	do_something ()

#在条件延续行上添加一些额外的缩进。
if (this_is_one_thing
		and that_is_another_thing):
	do_something ()

(另见下文关于在二元运算符之前还是之后中断的讨论。)

在多行结构中,右花括号/方括号/圆括号可以对齐到列表最后一行的第一个非空白字符下面,如下所示:

My_list = [
	1 2 34, 5, 6]
Result = some_function_that_takes_arguments(
	'a' 'b' 'c''d''e''f')
# 它也可以排在多行结构开始的那一行的第一个字符下面,比如:

My_list = [
	1 2 34, 5, 6]
Result = some_function_that_takes_arguments(
	'a' 'b' 'c''d''e''f')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值