pep8规范 官方文档:[https://www.python.org/dev/peps/pep-0008/](https://www.python.org/dev/peps/pep-0008/)html
PEP8中文翻译:http://www.cnblogs.com/ajianbeyourself/p/4377933.htmlpython
1)缩进。4个空格的缩进(编辑器均可以完成此功能),不使用Tap,更不能混合使用Tap和空格。程序员
2)每行最大长度79,换行可使用反斜杠,最好使用圆括号。换行点要在操做符的后边敲回车。api
3)类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其余地方尽可能不要再空行。tcp
1) 模块内容的顺序:模块说明和docstring—import—globals&constants—其余定义。其中import部分,又按标准、三方和本身编写顺序依次排放,之间空一行。编辑器
import os import sys from tcp_server import online_user from threading import currentThread from lib import common from interface import common_interface, admin_interface, user_interface ...
2 )不要在一句import中多个库,好比import os, sys不推荐。函数
# 正确方式 import os import sys from subprocess import Popen, PIPE # 错误方式 import os,sys
3) 若是采用from XX import XX引用库,能够省略‘module.’,都是可能出现命名冲突,这时就要采用import XX。编码
from myclass import MyClass from foo.bar.yourclass import YourClass # 若是和本地名字有冲突: import myclass import foo.bar.yourclass
# 正确写法 x = x + 1 # Compensate for border # 错误写法 x = x + 1 # do nothing
1 )编码中考虑到其余python实现的效率等问题,好比运算符‘+’在CPython(Python)中效率很高,都是Jython中却很是低,因此应该采用.join()的方式。
2) 尽量使用‘is’‘is not’取代‘==’,好比if x is not None 要优于if x。
3) 使用基于类的异常,每一个模块或包都有本身的异常类,此异常类继承自Exception。
4) 异常中不要使用裸露的except,except后跟具体的exceptions。
5 )异常中try的代码尽量少。好比:spa
try: value = collection[key] except KeyError: return key_not_found(key) else: return handle_value(value) 要优于 try: return handle_value(collection[key]) except KeyError: return key_not_found(key
6 )使用startswith() and endswith()代替切片进行序列前缀或后缀的检查。好比:翻译
if foo.startswith('bar'):优于 if foo[:3] == 'bar':
7) 使用isinstance()比较对象的类型。好比
if isinstance(obj, int): 优于 if type(obj) is type(1):
8 )判断序列空或不空,有以下规则
Yes: if not seq: if seq:
优于
No: if len(seq) if not len(seq)
9 )字符串不要以空格收尾。