笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

Pocoo 风格指引

发布者: 笨鸟自学网



禁止使用 Yoda 语句:

永远不要用变量与常量做比较,而是把常量与变量做比较:

God

if method == 'md5':
    pass

Bad

if 'md5' == method:
    pass
比较:
  • 跟任意类型: == 和 !=
  • 跟单例,使用 is 和 is not (例如 foo is not None )
  • 永远不要与 True 或 False 做比较(比如永远不要写 foo == False ,而使用 not foo )
否定包含检查:
使用 foo not in bar 而不是 not foo in bar
实例检查:
用 isinstance(a, C) 而不是 type(A) is C , 但通常试图避免 实例检查,请对特性检查。

命名约定

  • 类名: CamelCase ,缩写词大写( HTTPWriter 而非 HttpWriter )
  • 变量名: lowercase_with_underscores
  • 方法和函数名: lowercase_with_underscores
  • 常量: UPPERCASE_WITH_UNDERSCORES
  • 预编译正则表达式: name_re

被保护的成员以单个下划线作为前缀,双下划线为 mixin 类保留。

有关键字的类上,在末尾添加下划线。允许与内置组建冲突,并且 一定不要 在用在变量名后添加下划线的方式解决。如果函数需要访问一个隐蔽 的内置构件,重绑定内置构件到一个不同的名字作为替代。

函数和方法参数:
  • 类方法: cls 作为第一个参数
  • 实例方法: self 作为第一个参数
  • 属性的 lambda 表达式应该把第一个参数替换为 x ,像 display_name = property(lambda x: x.real_name or x.username) 中一样

文档注释

文档字符串约定:

所有的文档注释应为 Sphinx 可理解的 reStructuredText 格式,其格式根据注释行数而变化。 如果只有一行,闭合的三引号和开头的三引号在同一行, 否则开头的三引号与文本在同一行,而闭合的三引号另起一行:

def foo():
    """This is a simple docstring"""


def bar():
    """This is a longer docstring with so much information in there
    that it spans three lines.  In this case the closing triple quote
    is on its own line.
    """
模块标头:

模块标头包含一个 utf-8 编码声明(即使没有使用非 ASCII 字符,也始终推荐这么做) 和一个标准的文档注释:

# -*- coding: utf-8 -*-
"""
    package.module
    ~~~~~~~~~~~~~~

    A brief description goes here.

    :copyright: (c) YEAR by AUTHOR.
    :license: LICENSE_NAME, see LICENSE_FILE for more details.
"""

请留意,合适的版权和许可证文件对于 Flask 扩展通过审核是必须的。

注释

注释的规则和文档注释类似。两者都使用 reStructuredText 格式。如果一个 注释被用于一个属性的文档,在起始的井号( # )后加一个冒号:

class User(object):
    #: the name of the user as unicode string
    name = Column(String)
    #: the sha1 hash of the password + inline salt
    pw_hash = Column(String)


12
上一篇:Flask 扩展开发下一篇:Python 3 支持

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 09:48 , Processed in 0.027891 second(s), 17 queries .

© 2001-2020

返回顶部