1. 行长与换行
为了增强可读性,建议代码每行长度不超过80个字符,import和comment除外;
虽然反斜杠\可以把不同的行内容连接起来,但是仍然不建议使用。实际上,Python中规定圆括号、方括号和花括号可以跨越多个自然行,我们可以利用这个规则规避反斜杠;
Expressions in parentheses, square brackets or curly braces can be split over more than one physical line without using backslashes.
# Example 1
content = ('I want say something directly.'
'But it is too long!')
print (content)
def IsTime(year = 1900, month = 1, day = 1,
hour = 0, minute = 0, second = 0):
if (1900 < year < 2100
and 1 <= month <= 12
and 1 <= day <= 31
and 0 <= hour < 24
and 0 <= minute < 60
and 0 <= second < 60):
return 1
2. 括号
上一个Item谈到括号可以进行自然行的连接,但是请不要强行在条件或者返回语句中使用括号,即便语义上没有问题,如:# Example 2
if (year == 1990):
print("90's")
4. 空行
为了增加代码的可读性,建议使用空行来区分不同的定义。
# Example 3
class ExampleClass(object):
publicValue = 1
_privateValue = 0
def __init__(self, pub, pri):
publicValue = pub _privateValue = pri
def getPublic(self):
return publicValue
def getPrivate(self):
return privateValue
#Example 4
dict['key'] = list[idx] # not dict [ 'key' ] = list [ idx ]
spam(1) # not spam (1)
def complex(real, imag=0.0): return magic(r=real, i=imag) # not def complex(real, imag= 0.0): return magic(r = real, i = imag)
#!/usr/bin/python2
#!coding : utf8
8. 类
对于没有任何基类的类来说,从object显示继承可以使你的类实现系统默认一些语义而不受兼容性的影响。
9. 字符串
在Python里面,字符串是一个不可以写的内建对象,因而我们在以下几种情况下加法运算,否则使用其他方案来进行代替:
# Example 5
x = a + b # not x = '%s%s' (a, B)/> or x = '{}{}'.format(a, B)/>
#otherwise
x = '%s is not in %s' % (a, B)/>
x = '{} is not in {}'.format(a, B)/>
arr = []
for r in rows:
arr.append(r['title'])
titles = ','.join(arr)
''' not use like this: titles = "" count = 0 for r in rows: if count = 0: titles = r['title'] else: titles += ',' + r['title'] '''
11. TODO/FIX ME/XXX
标志未来需要添加或者修改的代码注释非常必要。
12. import
请给每个导入的模块一个单独行,不要吝啬
13. 封装
请尽量使用接口和私有变量来控制你模块中的类
14. 使用if __name__ == '__main__'
将程序的入口放在一个函数中,防止模块中的代码被执行。
# Example 6
def main():
...
if __name__ == '__main__':
main()
作者 冰力 ITBBS.cn