龙空技术网

Python-不得不知的PEP8代码规范

猿视野 138

前言:

而今咱们对“pythonpep8”大致比较注重,看官们都需要知道一些“pythonpep8”的相关资讯。那么小编也在网络上汇集了一些对于“pythonpep8””的相关资讯,希望兄弟们能喜欢,看官们一起来学习一下吧!

常见的注意点:

1、每一级缩进使用4个空格。

2、续行应该与其包裹元素对齐,要么使用圆括号、方括号和花括号内的隐式行连接来垂直对齐,要么使用挂行缩进对齐3。当使用挂行缩进时,应该考虑到第一行不应该有参数,以及使用缩进以区分自己是续行。

3、建议写法

4、不建议写法:

行的最大长度:

1、所有行限制的最大字符数为79。

2、没有结构化限制的大块文本(文档字符或者注释),每行的最大字符数限制在72。

空行:

1、顶层函数和类的定义,前后用两个空行隔开。

2、类里的方法定义用一个空行隔开。

imports 导入:

1、多个模块分行导入,例如:

2、导入总是位于文件的顶部,在模块注释和文档字符串之后,在模块的全局变量与常量之前。

3、导入应该按照标准库、相关第三方库、自定义库的顺序分组,每组之间用空行隔开。

4、推荐使用绝对路径导入,如果导入系统没有正确的配置(比如包里的一个目录在sys.path里的路径后),使用绝对路径会更加可读并且性能更好(至少能提供更好的错误信息)。

Block Comments 块注释

1、块注释通常适用于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别。块注释的每一行开头使用一个#和一个空格(除非块注释内部缩进文本)。

2、块注释内部的段落通过只有一个#的空行分隔。

Inline Comments 行内注释

1、有节制地使用行内注释。

2、行内注释是与代码语句同行的注释。行内注释和代码至少要有两个空格分隔。注释由#和一个空格开始。

Documentation Strings 文档字符串

1、要为所有的公共模块,函数,类以及方法编写文档说明。

2、非公共的方法没有必要,但是应该有一个描述方法具体作用的注释。这个注释应该在def那一行之后。

3、PEP 257描述了写出好的文档说明相关的约定。特别需要注意的是,多行文档说明使用的结尾三引号应该自成一行,例如:

约定俗成的命名:应避免的名字:

1、永远不要使用字母‘l’(小写的L),‘O’(大写的O),或者‘I’(大写的I)作为单字符变量名。

2、在有些字体里,这些字符无法和数字0和1区分,如果想用‘l’,用‘L’代替。

Class Names 类名:

1、类名一般使用首字母大写的约定。

2、在接口被文档化并且主要被用于调用的情况下,可以使用函数的命名风格代替。

3、注意,对于内置的变量命名有一个单独的约定:大部分内置变量是单个单词(或者两个单词连接在一起),首字母大写的命名法只用于异常名或者内部的常量。

Function Names 函数名

1、函数名应该小写,如果想提高可读性可以用下划线分隔。

2、大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用(比如 threading.py),保持向后兼容性。

Function and method arguments 函数和方法参数

1、始终要将 self 作为实例方法的的第一个参数。

2、始终要将 cls 作为类静态方法的第一个参数。

3、如果函数的参数名和已有的关键词冲突,在最后加单一下划线比缩写或随意拼写更好。因此 class_ 比 clss 更好。(也许最好用同义词来避免这种冲突)

Programming Recommendations 编程建议

1、代码应该用不损害其他Python实现的方式去编写(PyPy,Jython,IronPython,Cython,Psyco 等)。比如,不要依赖于在CPython中高效的内置字符连接语句 a += b 或者 a = a + b。这种优化甚至在CPython中都是脆弱的(它只适用于某些类型)并且没有出现在不使用引用计数的实现中。在性能要求比较高的库中,可以用 ”.join() 代替。这可以确保字符关联在不同的实现中都可以以线性时间发生。

2、和像None这样的单例对象进行比较的时候应该始终用 is 或者 is not,永远不要用等号运算符。

3、使用 is not 运算符,而不是 not … is 。虽然这两种表达式在功能上完全相同,但前者更易于阅读,所以优先考虑。

标签: #pythonpep8