保证你的代码在80个字符的屏幕宽度内。
缩进是4个空格,这是python的标准。函数参数另起一行并使用8个空格的缩进:
#标准写法,参数另起一行,并且使用8空格的缩进
return 'class: %s, host: %s, args = %s' % (
self.__class__.__name__, self.hostname, self.args)
return 'class: %s, host: %s, args = %s' % (
self.__class__.__name__,
self.hostname,
self.args)
#这是不标准的写法,不要在函数的参数上使用 4个空格的缩进
return 'class: %s, host: %s, args = %s' % (
self.__class__.__name__, self.hostname, self.args)
#不标准的写法,需要将函数的参数另起一行
return 'class: %s, host: %s, args = %s' % (self.__class__.__name__,
self.hostname, self.args)
不要再空行键入写空格或TAB
。
variable_names_like_this
method_and_function_names_like_this
UpperCamelCase
导入模块的顺序如下:
在上述三种模块的导入中,所有使用了from关键字导入的模块都应该出现在没有使用from关键字导入的模块之后。
每个模块的导入另起一行,金陵不要使用通配符导入,如:from x import *
。
from common_lib import error
def foo():
raise error.AutoservError(...)
而不要:
from common_lib.error import AutoservError
正确的导入示例:
import os
import pickle
import random
import re
import select
import shutil
import signal
import subprocess
import common # Magic autotest_lib module and sys.path setup code.
import MySQLdb # After common so that we check our site-packages first.
from common_lib import error
使用is None
代替== None
,使用is no None
代替!= None
。这样你就不会因为一些__eq__
或者__ne__
的方法调用出现错误的情况。
尽可能的清晰明了地书写注释。
字符串的书写影噶i使用单引号,当子楚川本身含有单引号时,则使用双引号,多行字符串不应该使用双引号,应该使用单引号分行,
并用括号括起来:
REALLY_LONG_STRING = ('This is supposed to be a really long string that is '
'over 80 characters and does not use a slash to '
'continue.')
文档字符串用于代码的功能记录,虽然没有必要过度记录文档,但需要记录重要功能。在创建文档字符串时,需要再三个单引号开头
添加换行符,并在结尾处添加另一个换行符。如果字符串有多行,请在继续描述其余部分之前包括一个简短的摘要行,后面跟一个空行。
请相应地对句子进行大写和标点处理。如果描述有多行,则在继续处理文本之前放置两级缩进。一个示例:
def foo(param1, param2):
"""
Summary line.
Long description of method foo.
@param param1: A thing called param1 that is used for a bunch of stuff
that has methods bar() and baz() which raise SpamError if
something goes awry.
@returns a list of integers describing changes in a source tree
@raises exception that could be raised if a certain condition occurs.
"""
可以在文档字符串中根据需要定义多个标签:
Tag | Description |
---|---|
@author | Code author |
@param | Parameter description |
@raise | If the function can throw an exception, this tag documents the possible exception types. |
@raises | Same as @raise. |
@return | Return value description |
@returns | Same as @return |
@see | Reference to other parts of the codebase. |
@warning | Call attention to potential problems with the code |
@var | Documentation for a variable or enum value (either global or as a member of a class) |
@version | Version string |
尽量使你的代码可读性更高,更加简洁。
保证函数简洁,尽可能控制在30行以内。