python 编码规范

python之禅pep20

优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

编码规范(pep8)

  • 缩进
  1. 使用四个空格来进行缩进
  2. 换行的时候可以使用反斜杠,最好的方法是使用园括号,在使用反斜杠的时候,在反斜杠的后直接回车,不能有任何空格存在
  3. 关于tab的空格的选择,在python2中是可以混用的,但是在python3中,只能用一种风格。
  • 行的最大长度
    行的最大长度为79个字符
    没有结构化限制的大块文本(文档字符或者注释),每行的最大字符数限制的72个

  • 空行
    顶层l函数和类的定义的时候,空两行。
    类中方法的定义空一行。

  • 注释
    注释必须与代码符合,修改代码必须修改注释

    • 块注释
      块注释通常适用于跟随它们某些(或者全部的)代码,并锁进到与代码相同的级别,块注释的每一行开头使用一个#和一个空格
      块注释内部的段落通过只有一个#的空行分割
    • 行内注释
      有节制的使用行内注释
      行内注释与代码语句同行的注释,行内注释和代码至少要有两个空格分割,以#和一个空格开始
    • 文档注释格式要求
    """
         整体描述模块作用 
         :param n:  参数 : 作用
         :type  n:  参数 : 参数类型
    
    
    
    """
       使用__doc__ 可获取文档注释
    
  • 命名

    • 变量命名
      永远不要使用字母i,‘O’,‘I’ 作为单字节变量名
    • 函数名命名
      函数名应该小写,如果想提高可读性可以用下划线分割
    • 类命名
      首字母大写
  • 字符串引号
    单引号和双引号字符串是相同的,pep没有给出建议,选择一条规则并坚持使用下去
    当一个字符串同时具有两个时,使用和最外层不同的符号来避免使用反斜杠,从而提高可读性

  • 导入
    先导入python内置的包
    导入第三方的模块和包
    导入自定义的模块和包

    • 命名规范:
      模块名称要短,使用小写,并避免使用特殊符号
      模块名称简单明了,不推荐使用下划线
  • 不推荐使用 from model import *

  • all 变量
    如果全局变量中存在all ,那么通过from model import * 导入该模块时指定的方法和变量,没有则全部导入
    常用于限制参数和模块的导入

    • 任意包含init.py 文件的目录被认为时一个包
    • 导入时会首先执行init.py 文件
    • 如果init.pys文件中存在all,那么通过from model import * 只会导入指定的模块,没有默认导入全部
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容