Python  规范
代码的布局
 编码
   所有的Python脚本文件都应在文件头标上“# -*- coding:utf-8 -*-”
缩进
4个空格一个缩进层次 
空行
适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:
(1) 在类、函数的定义间加空行;
(2) import不同种类的模块间加工行;
(3) 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔
换行
    import语句  语句比较长,一行写不下的情况下使用
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)作为单字符的变量名。在某些字体中这些字符不能与数字10分辨。试着在使用‘l’时用‘L’代替。
 常量
常量名所有字母大写,由下划线连接各个单词,如:
WHITE = 0XFFFFFF
THIS_IS_A_CONSTANT = 1
 
变量
量名全部小写,由下划线连接各个单词,如:
color = WHITE
this_is_a_variable = 1
不论是类成员变量还是全局变量,均不使用 m g 前缀。私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
变量名不应带有类型信息,因为 Python 是动态类型语言。如 iValuenames_listdict_obj 等都是不好的命名。
全局变量名
              这些约定和在函数中的一样。模块是被设计为通过“from M import *”来使用的,必须用一个下划线作全局变量(及内部函数和类)的前缀防止其被导出(exporting)
函数
函数名的命名规则与变量名相同。

类名单词首字母大写,不使用下划线连接单词,也不加入 CT 等前缀。如:
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 语句有以下几个原则需要遵守:
1import 的次序,先 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):
    print i
 
其它建议
    始终在这些二元运算符两边放置一个空格:赋值(=) 比较(==<>!=<><=      >=innot inisis not),布尔运算 (andornot)
    按你的看法在算术运算符周围插入空格。 始终保持二元运算符两边空格的一致。
    一些例子:
#!Python
          i = i+1
          submitted = submitted + 1
          x = x*2 - 1
          hypot2 = x*x + y*y
          c = (a+b) * (a-b)
          c = (a + b) * (a - b)
    不要在用于指定关键字参数或默认参数值的'='号周围使用空格,例如:
#!Python
          def complex(real imag=00)
              return magic(r=real i=imag)
   
注释
#号开头
同代码不一致的注释比没注释更差。当代码修改时,始终优先更新注释!注释应该是完整的句子,如果注释是一个短语或句子,首字母应该大写,除非他是一个以小写字母开头的标识符(永远不要修改标识符的大小写)
    如果注释很短,最好省略末尾的句号。 
注释块
注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中每行以‘#’和一个空格开始(除非他是注释内的缩进文本)。注释块内的段落以仅含单个‘#’的行分割。注释块上下方最好有一空行包围(或上方两行下方一行,对一个新函数定义段的注释)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。