完整的规范移步传送门

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. BZOJ 5267 特工 (类FWT)

      题意 题解 从大到小枚举\(l\), 把一个序列从\(2^{l+1}\)分成两个独立的\(2^l\),去除两半的影响. 设去除前的序列为\(b\), 去除后序列为\(b'\) 则有\(b_{2^{l+ ...

    2. simple queue(简单队列)

      Virtual host-虚拟主机 虚拟主机,用于进行逻辑隔离,是最上层的路由,类似于redis的16个db,是一种逻辑上的隔离 一个virtualhost里面可以有若干个Exchange和Queue ...

    3. (转载)深入理解Java:内省(Introspector)

      本文转载自:https://www.cnblogs.com/peida/archive/2013/06/03/3090842.html 一些概念: 内省(Introspector) 是Java 语言对 ...

    4. 微信小程序<web-view>出现{"base_resp":{"ret":-1}}

      最近在使用小程序<web-view>这个标签加载一个https网页的时候出现了{"base_resp":{"ret":-1}}这一个问题 搞了好久~ ...

    5. grep命令和tail命令

      写在前面的话: 最近参与了新项目开发,周期短,与自己负责的主要业务对接.业务复杂,时常出现bug,然额对于菜鸟的我,更是无从下手.其实最好的帮助就是 学会查看日志,关键是之前查看日志真是太少了,菜鸟一 ...

    6. hive 使用笔记(table format;lateral view横表转纵表)

      1. create table 创建一张目标表,指定分隔符和存储格式: create table tmp_2 (resource_id bigint ,v int) ROW FORMAT DELIMI ...

    7. OGG 从Oracle备库同步数据至kafka

      OGG 从Oracle备库同步数据至kafka Table of Contents 1. 目的 2. 环境及规划 3. 安装配置JDK 3.1. 安装jdk 3.2. 配置环境变量 4. 安装Data ...

    8. Mysql中用SQL增加、删除、修改(包括字段长度/注释/字段名)总结

      转: Mysql中用SQL增加.删除.修改(包括字段长度/注释/字段名)总结 2018年09月05日 10:14:37 桥Dopey 阅读数:1830   版权声明:本文为博主原创文章,未经博主允许不 ...

    9. SpringBoot解决ajax跨域问题(转载)

      一.第一种方式: 1.编写一个支持跨域请求的 Configuration import org.springframework.context.annotation.Configuration; im ...

    10. MySQL 将 字符串 转为 整数

      MySQL 将 字符串 转为 整数 1.CAST(epr AS type) 1)type 为 SIGNED " AS SIGNED); 效果如下: 2)type 为 UNSIGNED &qu ...