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。