代码风格:
- 使用空格来表示缩进,而不要使用制表符tab,请勿将两者混用
- 函数间换行至少一行
- 类之间换行至少两行
- dict、list、tuple、参数列表时,应该在逗号,前添加一个空格
- dict中key之后的冒号:应在value与冒号:之间添加空格,而不是:与key之前间
- 较长代码(大于79chars)使用反斜杠\换行。换行后新行的起始处应该与前一个分隔符对齐(是参数换行则与左括号(对齐
- import位于module comments 与 docstring 之后,常量声明之前
- 3.0一下版本的代码文件建议以latin字符编码。3.0以上则推荐utf-8
- 代码中有操作符运算,请注意优先级,优先的操作紧缩,或者加括号
- 等号左右两边请勿加空格
- 尽量不要将多行代码放在同一行
- 少使用inline comments(行后注释)
- block comments (用#开头的多行函数注释),保持与目标函数 相同的缩进
- docstring ,开头一行写上返回值,接下来一行写函数功能描述,后可按照格式>>>func(arg1, arg2, arg3) /r 返回值。以便于测试
- 另外,若要使用subversion,cvs等源代码管理工具。可以在函数的docstring 之后,code之前 写上
- __version__ = " Revision:16dd63848921 "
命名规则:
- 尽量少用 'l' (lowercase letter el), 'O' (uppercase letter oh), or 'I' (uppercase letter eye) 单字母作为变量的命名.-------no l,I,O
- 包和模块应该用短且全小写字母(Modules should have short, all-lowercase names.):thismoduleisnew
- class name 则建议用CapWords(首字母大写)的形式命名:NewClassName
- Exception类则用以Error结尾的字符串命名为宜: NewError
- 全局变量尽量只是设计用于模块内使用,并且可以用import *时,包内的__all__机制来除去全局变量
- 函数名(function name) 尽量都用小写且单词间以_(下划线)连接,另外,大小混合的mixedCase植被允许用于传统类中。function_name(arg1...)
- 函数和方法参数(function and method arguments),self作为实例方法的第一个参数,cls作为类方法的第一个参数,倘若参数名与关键字相同,为了避讳,则应该加个下划线
- 方法名&类实例的属性(method name & instance variable)方法名规则与函数名相同,类实例私有属性 和 类实例的私有方法以单个下划线开头_private_fucntion_name(self)
- 常量;全大写,单词间以_下弧线间隔:THIS_IS_CONSTANT_VAR
- 面向对象设计建议:
- 若对类实例中的属性是设置成public的好还是private好,可以考虑先设置成private,其修改成本更低。
- private不能被第三方使用,因为随时有可能被删除、废弃
- public属性不能用下划线开头
- 避免属性使用大运算量操作
- 倘若不想被子类继承的属性,应该用双下划线开头,且最后没有下划线。这样会启动python的命名识别矫正处理算法,保证不被继承