Python 代码添加空行

Python 代码添加空行,布局清晰、整洁、优雅的代码能够给阅读它的人带来愉悦感,而且它能帮助开发者之间进行良好的沟通。在一个团队中,保持良好的代码格式需要团队成员在选取一套合适的代码格式规则的基础上遵从和应用。同时它需要每个团队成员树立正确的态度,因为实际工作中有很多开发者抱着这样的想法:“代码能工作才是最重要的”,但往往代码会不断修改,且可读性直接关系到可维护性和可扩展性。因此我们需要端正态度——“代码不是恒定的,只有风格才能延续,能工作的代码和整洁、优雅的格式同样重要”。

为了让读者更加深入地理解代码布局的重要性,我们先来看一个猜数字游戏的示例。下面两段代码,编码完全相同,只是在排版上做了一定修改,你觉得哪个更加容易阅读呢?
示例一:

import random
guesses_made = 0
name = raw_input('Hello! What is your name?\n')
number = random.randint(1, 20)
print 'Well, {0}, I am thinking of a number between 1 and 20.'.format(name)
while guesses_made < 6:
    guess = int(raw_input('Take a guess: '))
    guesses_made += 1
    if guess < number:
        print 'Your guess is too low.'
    if guess > number:
        print 'Your guess is too high.'
    if guess == number:
        Break
if guess == number:
    print 'Good job, {0}! You guessed my number in {1} guesses!'.format(name, guesses_made)
else:
    print 'Nope. The number I was thinking of was {0}'.format(number)

示例二:

import random
guesses_made = 0
name = raw_input('Hello! What is your name?\n')
number = random.randint(1, 20)
print 'Well, {0}, I am thinking of a number between 1 and 20.'.format(name)
while guesses_made < 6:
    guess = int(raw_input('Take a guess: '))
    guesses_made += 1
    if guess < number:print 'Your guess is too low.'
    if guess > number:print 'Your guess is too high.'
    if guess == number:break
if guess == number:print 'Good job, {0}! You guessed my number in {1} guesses!'.
            format(name, guesses_made)
else:print 'Nope. The number I was thinking of was {0}'.format(number)

看了上面两个例子,相信很多读者都倾向于阅读第一个例子,这就是代码布局和排版带给我们的最直观的感受。和其他语言一样,Python代码布局也有一些基本规则可以遵循。

1)在一组代码表达完一个完整的思路之后,应该用空白行进行间隔。如每个函数之间,导入声明、变量赋值等。通俗点讲就是不要在一段代码中说明几件事。推荐在函数定义或者类定义之间空两行,在类定义与第一个方法之间,或者需要进行语义分割的地方空一行。如示例一在import声明和变量赋值之间插入了空行。但读者需要注意的是:空行是在不隔断代码之间内在联系的基础上插入的,也就是说有关联的代码还是需要保持紧凑、连续。在示例一中,如果你在if和else之间插入空行就显得非常没有必要,就像下面的代码:

if guess == number:
    print 'Good job, {0}! You guessed my number in {1} guesses!'.format(name, guesses_made)
else:
    print 'Nope. The number I was thinking of was {0}'.format(number)

2)尽量保持上下文语义的易理解性。如当一个函数需要调用另一个函数的时候,尽量将它们放在一起,最好调用者在上,被调用者在下。例如下面的代码:

def A():
    B()
def B():
    pass

3)避免过长的代码行,每行最好不要超过80个字符。以每屏能够显示完整代码而不需要拖动滚动条为最佳,超过的部分可以用圆括号、方括号和花括号等进行行连接,并且保持行连接的元素垂直对齐。例如下面的代码:

>>> x=('this is a very long string'
... 'it is used for testing line limited characters')
>>> print x
this is a very long stringit is used for testing line limited characters
>>>def Draw_Line(ponitX1,pointY1,pointX2=1,pointY2=2,
        color='green',width=2,style='bold'):

4)不要为了保持水平对齐而使用多余的空格,其实使阅读者尽可能容易地理解代码所要表达的意义更重要。如下列代码的主要目的是赋值,为了可以保持对齐往往会造成“喧宾夺主”。

X =                      5
Year =                2013
name =               "Jam"
d2 = {'spam': 2,'eggs': 3}

同时也不要在一行有多个命令,如不要将X=1;Y=2;直接写在一行中。

5)空格的使用要能够在需要强调的时候警示读者,在疏松关系的实体间起到分隔作用,而在具有紧密关系的时候不要使用空格。具体细节如下:

  • 二元运算符(赋值(=),比较(==,<,>,!=,<>,<=,>=,in,not in,is,is not)、布尔运算(and,or,not))的左右两边应该有空格,如x == 1。
  • 逗号和分号前不要使用空格。
    推荐: if x == 4: print x, y; x, y = y, x
    不推荐:if x == 4 : print x , y ; x , y = y , x

  • 函数名和左括号之间、序列索引操作时序列名和[ ]之间不需要空格,函数的默认参数两侧不需要空格。

  • 强调前面的操作符的时候使用空格,如 -2 – 5(在-2和5之间的减号前后需要添加空格)、b*b + a*c(在加号前后需要添加空格)。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!