Pyhon编程规范
1、变量不推荐使用的字符
不要用字符‘l’(小写字母l),‘O’(大写字母),或‘I’(大写字母)作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用‘l’时用‘L’代替。
2、局部变量
类型名+变量简写,并且从第二个单词开始,首字母大写。例如字符型的路名称
strWayName.
3、全局变量
g+类型名+变量简写,并且从第二个单词开始,首字母大写。例如字符型的路名称
gstrWayName.
4、包、模块的命名规则
全部以小写字母的形式来命名。模块名应该是不含下划线、简短、小写字母。
5、类、对象的命名规则
每个单词的首字母要大写,其他字母小写;
对象名用小写字母来表示;
类的私有属性、私有方法以两个下划线作为前缀,对象通过点操作符来访问类中的属性和方法。
6、函数的命名规则
函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。
函数名是区分大小写的。
函数名不能是保留字。
建议第一个单词的首字母小写。
7、注释
1.单行注释
Python中的单行注释使用#号加若干空格开始,后面是注释的内容,以回车作为注释的结束。例如:
#声明并初始化变量num
num=1
2.行内注释
Python中的行内注释是最常用的,行内注释应该至少用两个空格和语句分开,它们以#号和单个空格开始。例如:
num=1 #声明并初始化变量num
3.注释块
注释块通常应用于跟随一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中也使用#号和一个空格开始。注释块内的段落以仅含单个#的行分隔。
Python一般会忽略#行的内容,跳过#行执行后面的内容。特殊含义的注释例外。Python还有一些特殊的注释,用以完成一些特别的功能,例如中文注释、程序的跨平台等。
1) 中文注释
如果需要在代码中使用中文注释,必须在Python文件的最前面加上如下注释说明:
#_*_ coding:UTF-8 _*_
2) 跨平台注释
如果需要使Python程序运行在Windows以外的平台上,则需要在Python文件的最前面加上如下注释说明:
!# /usr/bin/python
4、变量注释
所有变量建议先定义后使用,在定义时可以给变量赋空值,同时在后面给出注释;
建议一行只定义一个变量。
5、函数注释
函数名称:函数名
功能描述:函数功能描述
输入参数:
输入参数名称1:输入参数的类型及其代表的含义
输入参数名称2:输入参数的类型及其代表的含义
输出参数:
输出参数名称1:输出参数的类型及其代表的含义
输出参数名称2:输出参数的类型及其代表的含义
返回值:
返回值的类型,每种返回值所代表的含义,例如成功、失败、错误码。
6、类注释
类名称:类名称
功能描述:对该类的功能的描述
8、代码布局
1、缩进
4个空格一个缩进层次,不建议使用制表符(TAB)。
2、行的最大长度
所有行限制在最大79字符(Emacs准确得将行限制为长80字符),对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。
3、空行
用两行空行分割顶层函数和类的定义;
类内方法(以及普通方法)的定义用单个空行分割;
在‘class’行和第一个方法定义之间也要有一个空行。
4、导入
通常应该在单独的行中导入(Imports),例如:
错误的做法:import sys, os
正确的做法:
import sys
import os
但是这样也是可以的:
from types import StringType, ListType
Imports 通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。Imports应该有顺序地成组安放:
1、标准库的导入(Imports )
2、相关的主包(major package)的导入(即,所有的email包在随后导入)
3、特定应用的导入(imports)
在每组导入之间放置一个空行,对于内部包的导入是不推荐使用相对导入的,对所有导入都要使用包的绝对路径。
从一个包含类的模块中导入类时,通常可以写成这样:
from MyClass import MyClass
from foo.bar.YourClass import YourClass
如果这样写导致了本地名字冲突,那么就这样写
import MyClass
import foo.bar.YourClass
即使用"MyClass.MyClass"和"foo.bar.YourClass.YourClass"
5、表达式和语句中的空格
1)、不需要空格的地方
紧挨着圆括号,方括号和花括号的地方如:"spam( ham[ 1 ],{ eggs:2 } )"。要始终将它写成"spam(ham[1],{eggs: 2})";
紧贴着函数调用的参数列表前开式括号(open parenthesis )的,如"spam (1)"。要始终将它写成"spam(1)";
紧贴在索引或切片,开始的开式括号前的,如:
"dict ['key'] = list [index]"。要始终将它写成"dict['key'] = list[index]"。
2)、需要空格的地方
紧贴在逗号,分号或冒号前的,如:
"if x == 4:print x,y:x,y = y,x"。要始终将它写成
"if x == 4:print x,y:x,y = y,x";
赋值(或其它)运算符周围的用于和其它并排的一个以上的空格,如:
x = 1。