Python 命名规范1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Python 规范
代码的布局
编码
所有的Python脚本文件都应在文件头标上“# -*- coding:utf-8 -*-”。
缩进
4个空格一个缩进层次
空行
适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:
(1) 在类、函数的定义间加空行;
(2) 在import不同种类的模块间加工行;
(3) 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间
以空行分隔
换行
语句比较长,一行写不下的情况下使用
1.在括号(包括圆括号、方括号和花括号)内换行,如:
class Edit(CBase):
def __init__(self, parent, width,
font = FONT, color = BLACK, pos = POS, style = 0):
或:
very_very_very_long_variable_name = Edit(parent, \
width, \
font, \
color, \
pos)
如果行长到连第一个括号内的参数都放不下,则每个元素都单独占一行:
very_very_very_long_variable_name = ui.widgets.Edit( \
panrent, \
width, \
font, \
color, \
pos)
2.在长行加入续行符强行断行,断行的位置应在操作符前,且换行后多一个缩进,以使维
护人员看代码的时候看到代码行首即可判定这里存在换行,如:
if color == WHITE or color == BLACK \
or color == BLUE: # 注意or操作符在新行的行首而不是旧行的行尾
do_something(color);
命名约定
有许多不同的命名风格。以下的有助于辨认正在使用的命名风格,独立于它们的作用。以下的命名风格是众所周知的:
b (单个小写字母)
B (单个大写字母)
Lowercase(小写)
lower_case_with_underscores(有下划线的小写)
UPPERCASE(大写)
UPPER_CASE_WITH_UNDERSCORES(有下划线的大写)
应避免的名字。永远不要用字符…l‟(小写字母el(就是读音,下同)),…O‟(大写字母oh),或…I‟(大写字母eye)作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用…l‟时用…L‟代替。
常量
常量名所有字母大写,由下划线连接各个单词,如:
WHITE = 0XFFFFFF
THIS_IS_A_CONSTANT = 1
变量
变量名全部小写,由下划线连接各个单词,如:
color = WHITE
this_is_a_variable = 1
不论是类成员变量还是全局变量,均不使用m 或g 前缀。私有类成员使用单一下划线前
缀标识,多定义公开成员,少定义私有成员。
变量名不应带有类型信息,因为Python 是动态类型语言。如iValue、names_list、
dict_obj 等都是不好的命名。
全局变量名
这些约定和在函数中的一样。模块是被设计为通过“from M import *”来使用的,必须用
一个下划线作全局变量(及内部函数和类)的前缀防止其被导出(exporting)。
函数
函数名的命名规则与变量名相同。
类
类名单词首字母大写,不使用下划线连接单词,也不加入C、T 等前缀。如:
class ThisIsAClass(object):
passs
模块
模块名全部小写,对于包内使用的模块,可以加一个下划线前缀,如:
module.py
_internal_module.py
包
包的命名规范与模块相同。
缩写
命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
1命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式,如去除元音、包含辅音的首字符等方式,例如:
function 缩写为fn
text 缩写为txt
object 缩写为obj
count 缩写为cnt
number 缩写为num,等。
特定命名方式,主要是指__xxx__ 形式的系统保留字命名法。项目中也可以使用这种命
名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。
异常名
如果模块对所有情况定义了单个异常,它通常被叫做“error”或“Error”。似乎内建(扩展)
的模块使用“error”(例如:os.error),而Python模块通常用“Error” (例如:
xdrlib.Error)。趋势似乎是倾向使用CapWords异常名
语句
import
import 语句有以下几个原则需要遵守:
(1)import 的次序,先import Python 内置模块,再import 第三方模块,最后import 自己开发的项目中的其它模块;这几种模块中用空行分隔开来。
(2)一条import 语句import 一个模块。
(3)当从模块中import 多个对象且超过一行时,使用如下断行法
from module import (obj1, obj2, obj3, obj4,
obj5, obj6)
(4)不要使用from module import *,除非是import 常量定义模块或其它你
确保不会出现命名空间冲突的模块。
2分枝和循环
对于分枝和循环,有如下几点需要注意的:
不要写成一行,如:
If !flg: pass 和for i in xrange(10): print i都不是好代码,应写成
if !flg:
pass
for i in xrange(10):