香菜芹菜辣青椒,茄子扁豆嫩蒜苗,好大的黄瓜你们谁要,一个铜子儿拿两条。

2007-03-23

Python编码规范 (beta)

  • 4个空格一个缩进层次.
  • 行限制在最大79字符
  • UTF-8文件编码
  • 在二元运算符两边放置一个空格:赋值(=), 比较(==, <, >, !=, <>, <=,>=, in, not in, is, is not), 布尔运算 (and, or, not)
  • 不要在用于指定关键字参数或默认参数值的'='号周围使用空格
  • 不要将多条语句写在同一行上
  • 注释块(Block Comments)通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次. 注释块中每行 以 '#'和一个空格开始(除非他是注释内的缩进文本). 注释块内的段落以仅含单个'#'的行分割. 注释块上下方最好有一空行包围( 或上方 两行下方一行,对一个新函数定义段的注释).
  • 一个行内注释(Inline Comments)是和语句在同一行的注释.行内注释应该谨慎适用. 行内注释应该至少用两个空格 和语 句分开. 它们应该以'#'和单个空格开始.
  • 为所有公共模块,函数,类和方法编写文档字符串.
  • 多行文档字符串结尾的""" 应该单独成行
  • 对于CVS的服务器工作标记应该在代码段中明确出它的使用,如:在文档的最开始的版权声明后应加入如下版本标记:
  •    
    __version__ = "$Revision: 1.4 $"
    # $Source: E:/cvsroot/python_doc/pep8.txt,v $
    # 文件:$id$ # 版本: $Revision$
  • 永远不要用字符‘l’,‘O’(大写字母oh),或‘I’(大写字母eye)作为单字符的变量名.
  • 模块应该是不含下划线的,简短的,小写的名字.
  • 类名总是使用首字母大写单词串(CapWords)的约定.
  • 倾向使用首字母大写单词串(CapWords)作为异常名.
  • 函数名应该为小写,可能用下划线风格单词以增加可读性.
  • 方法名和实例变量名通常使用小写单词,必要时用下划线分隔增加可读性. 使用两个前导下划线以表示类私有的名字.
  • 始终要确定一个类中的方法和实例变量是否要被公开,私有与非公有的区别在于: 前者永远不会被用在一个派生类中,而后者可 能 会.
  • 同象None之类的单值进行比较,应该永远用:'is'或'is not'来做.
  • 基于类的异常总是好过基于字符串的异常. 模块和包应该定义它们自己的域内特定的基异常类(base exception class), 基类 应 该是内建的Exception类的子类. 还始终包含一个类的文档字符串.例如:
  •     
    class MessageError(Exception):
    """Base class for errors in the email package."""
  • 在检查前缀或后缀时避免对字符串进行切片,用startswith()和endswith()代替.
  • 对象类型的比较应该始终用isinstance()代替直接比较类型.例如:
  •    
    No: if type(obj) is type(1):
    Yes: if isinstance(obj, int):
  • 对序列,(字符串(strings),列表(lists),元组(tuples)), 使用空列表是false这个事实,因此"if not seq"或"if seq"比 "if len(seq)"或"if not len(seq)"好.
  • 不要用 == 来比较布尔型的值以确定是True或False
  •    
    No: if greeting ==
    True: Yes: if greeting:

没有评论: