Python语言规范(文章最后送上Python八荣八耻和Pycharm快捷键大全图一张)
Python之父Guido推荐的规范
缩进
习惯了java,c++之类的宽容,一开始学习python的时候,被它摆了道下马威,写个判断,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,而是靠缩进来表示.天哪刚开始的时候真的是不习惯
那么如何缩进?
首先不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。缩进就用空格,4个空格为一个缩进层次,Python的缩进应该是一个优点,只是刚开始可能很不习惯,到了以后,当你看别人的Python代码的时候,你就会深切感受到缩进的好处。另外,Python的缩进可以在一定程度上防止大量的代码堆积在一起,客观上促使形成良好的代码风格.
行的最大长度
周围仍然有许多设备被限制在每行80字符,主要是窗口限制在80个字符。因此,请将所有行限制在最大79字符,每行不超过80个字符除了两种情况
长的导入模块语句
注释里的URL
空行
顶层函数和类的定义用两行空行分割,类内方法的定义就用单个空行分割,额外的空行可被用于(保守的)分割相关函数组成的群,在一组相关的单句中间可以省略空行。
当空行用于分割方法的定义时,在‘class’行和第一个方法定义之间也要有一个空行。在函数中使用空行时,请谨慎的用于表示一个逻辑段落。
空格
杜绝一下几点出现空格
紧挨着圆括号,方括号和花括号的
紧挨贴在逗号,分号或冒号前的
紧贴着函数调用的参数列表前开式括号的
紧贴在索引或切片,开始的开式括号前的
在赋值(或其它)运算符周围的用于和其它并排的一个以上的空格
导入
通常应该在单独的行中导入(Imports),比方说:import sys,os;这样就是错误的
这样就是正确的:
import sys
import os
但是这样是可以的:
from types import StringType, ListType
Imports通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。Imports应该有顺序地成组安放:
标准库的导入(Imports )
相关的主包(major package)的导入(即,所有的email包在随后导入)
特定应用的导入(imports)
注释
当代码修改时,始终优先更新注释!注释应该是完整的句子,如果注释是一个短语或句子,首字母应该大写,除非他是一个以小写字母开头的标识符(永远不要修改标识符的大小写)。注释块通常由一个或多个由完整句子构成的段落组成,每个句子应该以句号结尾。一定要用英语书写时,断词和空格是可用的。非英语国家的Python程序员:请用英语书写你的注释,除非你120%的确信这些代码不会被其他然看懂。
注释块
注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中每行以#加一个空格开始)。注释块内的段落以仅含单个‘#’的行分割。注释块上下方最好有一空行包围(或上方两行下方一行,对一个新函数定义段的注释)。
行内注释
一个行内注释是和语句在同一行的注释,行内注释应该谨慎适用,行内注释应该至少用两个空格和语句分开,它们应该以#和单个空格开始。
文档字符串
应该一直遵守编写好的文档字符串的约定。为所有公共模块,函数,类和方法编写文档字符串。文档字符串对非公开的方法不是必要的,但你应该有一个描述这个方法做什么的注释。这个注释应该在"def"这行后。一定注意,多行文档字符串结尾的"""应该单独成行,
命名约定
Python库的命名约定有点混乱,所以我们将永远不能使之变得完全一致,不过还是有公认的命名规范的。新的模块和包(包括第三方的框架)必须符合这些标准,但对已有的库存在不同风格的,保持内部的一致性是首选的。
命名风格
有许多不同的命名风格。以下的有助于辨认正在使用的命名风格,独立于它们的作用。
单个小写字母或单个大写字母
全小写或全大写
有下划线的小写或有下划线的大写
有用短的特别前缀将相关的名字聚合在一起的风格。这在Python中不常用,但是出于完整性要提一下,例如,os.stat()函数是返回一个元组。
命名约定
应避免的名字。永远不要用字符‘l’,‘O’,或‘I’作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用‘l’时用‘L’代替。
模块名
模块应该是不含下划线的,简短的,小写的名字。因为模块名被映射到文件名,有些文件系统大小写不敏感并且截短长名字,模块名被选为相当短是重要的,这在Unix上不是问题,但当代码传到Mac或Windows上就可能是个问题了。当用C或C++编写的扩展模块有一个伴随Python模块提供高层接口时,C/C++模块有下划线前导。Python包应该是不含下划线的,简短的,全小写的名字。
异常名
如果模块对所有情况定义了单个异常,它通常被叫做“error”或“Error”。似乎扩展的模块使用“error”比如:os.error,而Python模块通常用“Error”比如:xdrlib.Error。
函数名
函数名应该为小写,可能用下划线风格单词以增加可读性。
全局变量
避免使用全局变量, 用类变量来代替. 但也有一些例外:
脚本的默认选项.
模块级常量. 例如: PI = 3.14159. 常量应该全大写, 用下划线连接.
有时候用全局变量来缓存值或者作为函数返回值很有用.
如果需要, 全局变量应该仅在模块内部可用, 并通过模块级的公共函数来访问.
总结
保证缩进的一致性
合理使用空行
适当添加注释
建立自己的编程思想
多看大公司的源代码规范
最后送上一个Python的八荣八耻
Pycharm快捷键大全
领取专属 10元无门槛券
私享最新 技术干货