完整的规范移步传送门

pep8规范 官方文档:[https://www.python.org/dev/peps/pep-0008/](https://www.python.org/dev/peps/pep-0008/)

PEP8中文翻译:[http://www.cnblogs.com/ajianbeyourself/p/4377933.html](http://www.cnblogs.com/ajianbeyourself/p/4377933.html)


个人使用中常用的规范

一、代码编排

1)缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。

2)每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。

3)类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。

二、文档编排

  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
  1. 如果采用from XX import XX引用库,可以省略‘module.’,都是可能出现命名冲突,这时就要采用import XX。
from myclass import MyClass
from foo.bar.yourclass import YourClass # 如果和本地名字有冲突:
import myclass
import foo.bar.yourclass

三、空行的使用

总体原则,避免不必要的空格。

  • 各种右括号前不要加空格。
  • 逗号、冒号、分号不要加空格。
  • 函数的左括号不要加空格。如Func(1)。
  • 序列的左括号不要加空格。如list[2]。
  • 操作符左右各加一个空格,不要为了对齐增加空格。
  • 函数默认参数使用的赋值符左右省略空格
  • 不要将多句语句写在同一行.
  • if/for/while语句中,即使执行语句只有一句,也必须另起一行。

四、注释

总体原则,英文,简明。

  • 与代码自相矛盾的注释比没注释更差。修改代码时要优先更新注释!
  • 注释是完整的句子。如果注释是断句,首字母应该大写,除非它是小写字母开头的标识符(永远不要修改标识符的大小写)。
  • 如果注释很短,可以省略末尾的句号。注释块通常由一个或多个段落组成。段落由完整的句子构成且每个句子应该以点号(后面要有两个空格)结束,并注意断词和空格。
  • 非英语国家的程序员请用英语书写你的注释,除非你120%确信代码永远不会被不懂你的语言的人阅读。
  • 注释块通常应用在代码前,并和这些代码有同样的缩进。每行以 '# '(除非它是注释内的缩进文本,注意#后面有空格)。注释块内的段落用仅包含单个 '#' 的行分割。
  • 慎用行内注释(Inline Comments) 节俭使用行内注释。 行内注释是和语句在同一行,至少用两个空格和语句分开。行内注释不是必需的,重复罗嗦会使人分心。不要这样做:
  • # 正确写法
    x = x + 1 # Compensate for border
    # 错误写法
    x = x + 1 # do nothing

    五、命名

    总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。

    • b(单个小写字母)
    • B(单个大写字母)
    • lowercase(小写串)
    • lower_case_with_underscores(带下划线的小写)
    • UPPERCASE(大写串)
    • UPPER_CASE_WITH_UNDERSCORES(带下划线的大写串)
    • CapitalizedWords(首字母大写的单词串或驼峰缩写)
    • 类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。
    • 注意: 使用大写缩写时,缩写使用大写字母更好。故 HTTPServerError 比 HttpServerError 更好

      mixedCase(混合大小写,第一个单词是小写)
    • Capitalized_Words_With_Underscores(带下划线,首字母大写,丑陋

    六 、编码建议

    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的代码尽可能少。比如:

    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 )字符串不要以空格收尾。

    文章转自:https://www.cnblogs.com/limengjie0104/p/8991430.html

    python PEP8常用规范(看完你会感谢我的!)的更多相关文章

    1. python PEP8常用规范

      python 常用PEP8规范   一 代码编排 1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号 ...

    2. 【职业规划】该如何选择职业方向?性能?自动化?测开?,学习选择python、java?看完你会感谢我的~

      前言 随着近两年来互联网行业的飞速发展,互联网技术的从业人员也越来越多. 近两年来技术岗位中测试和前端工程师变成了程序员中最好招的岗位. 测试行业卷也越来越厉害了. 也正是因为如此,我们要把自己的路越 ...

    3. PEP8 常用规范

      PEP8 常用规范 完整的规范移步这里两个传送门 pep8规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8中文翻译:http://www.c ...

    4. Python pep8代码规范

      title: Python pep8代码规范 tags: Python --- 介绍(Introduction) 官方文档:PEP 8 -- Style Guide for Python Code 很 ...

    5. 【翻译】Python PEP8编码规范(中文版)

      原文链接:http://legacy.python.org/dev/peps/pep-0008/ item detail PEP 8 Title Style Guide for Python Code ...

    6. python PEP8代码规范及问题

      最近刚刚接触Python,为了养成好习惯,尽量保证自己写的代码符合PEP8代码规范,下面是过程中报出的警告及解决方法,英文有些翻译不太准确见谅,会不断更新: PEP 8: module level i ...

    7. 五分钟学会Python装饰器,看完面试不再慌

      本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第12篇文章,我们来看看Python装饰器. 一段囧事 差不多五年前面试的时候,我就领教过它的重要性.那时候我Pyt ...

    8. python的 pep8 规范(看完你会感谢我的!!!)

      1 缩进与换行 每级缩进使用四个空格 2 限制每行的最大长度为79个字符 3 空行 顶层函数和类之间使用两个空行 类的方法之间用一个空行 在函数中使用空行表示不同逻辑段落 4 导入位于文件的顶部 5 ...

    9. [python]pep8编码规范

      一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类 ...

    随机推荐

    1. centos后台运行python程序

      在服务器上,为了退出终端,程序依然能够运行,需要设置程序在后台运行. 关键的命令:nohup *基本用法:进入要运行的py文件目录前 nohup python  -u test.py > tes ...

    2. LightGBM GPU python版本安装

      失败的安装尝试 1.官方Guide https://lightgbm.readthedocs.io/en/latest/GPU-Windows.html 生成在windows下可执行的exe程序,但是 ...

    3. 设置PyCharm中选择文本的背景颜色和代码中和选中单词相同单词的背景颜色

      1 设置选中单词的背景颜色 首先进入File->Setting->Editor->Color Scheme后复制一个存在的颜色主题作为自定义的颜色主题(默认的颜色主题是无法修改的,也 ...

    4. sublime tab转4个空格配置

      打开Sublime Text3,选择菜单Preferences->Settings-User,打开用户配置文件 然后在大括号里加上下面两行代码: "tab_size": 4, ...

    5. MySQL 主从复制 (CentOS 7)

      1.主从复制原理 (1) 当master 服务器上的数据发生改变时,则将其改变写入二进制日志文件中: (2) slave服务器会在一定时间间隔内对 master 服务器上的二进制日志进行探测,探测其是 ...

    6. Java环境变量的操作系统原理[浅谈]

      从知乎摘抄过来的文章,图没有复制过来,当作自己的笔记.其中我认为重要的部分(涉及操作系统的)已经加粗了. 本文源自:你应该知道的 Windows 环境变量 - 麓山南人的文章 - 知乎 https:/ ...

    7. apt 软件安装问题

      1.sudo apt-get update由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654 解决方法:安装公钥 sudo apt-key adv --keyser ...

    8. Mac/Linux 编译安装redis

      一.下载安装 官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0 sudu mv redis-.tar /usr/local/ sudo tar -zxf redis-.tar ...

    9. linux之gzip命令

      命令格式: gzip [选项] 压缩(解压缩)的文件名 参数: -d 将压缩文件解压. -l  对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字 -v 对每一个压缩和解压 ...

    10. k8s1.11.0安装、一个master、一个node、查看node名称是ip、node是扩容进来的、带cadvisor监控服务

      一个master.一个node.查看node节点是ip # 安装顺序:先在test1 上安装完必要组件后,就开始在 test2 上单独安装node组件,实现node功能,再返回来配置test1加入集群 ...