Pocoo 风格指引是所有 Pocoo 项目的风格指引,包括 Flask 。这份风格指引 在 Flask 补丁中是必须的,并且推荐在 Flask 扩展中使用。

一般而言, Pocoo 风格指引遵循 PEP 8 ,有一些小差异和扩充。

总体布局

缩进:
4个空格。没有制表符,没有例外。
最大行长:
79字符,软限制是 84 ,如果绝对必要。尝试合理放置 break 、 continue 和 return 声明来避免代码过度嵌套。
可续长语句:

你可以使用反斜线来继续一个语句,在这种情况下,你应该对齐下一行到最后一个 点或等号或缩进四个空格:

this_is_a_very_long(function_call, 'with many parameters') \
    .that_returns_an_object_with_an_attribute

MyModel.query.filter(MyModel.scalar > 120) \
             .order_by(MyModel.name.desc()) \
             .limit(10)

如果在一个带括号的语句中换行,对齐到括号:

this_is_a_very_long(function_call, 'with many parameters',
                    23, 42, 'and even more')

对于有许多元素的元组或列表,在起始括号后立即换行:

items = [
    'this is the first', 'set of items', 'with more items',
    'to come in this line', 'like this'
]
空行:

顶层函数和类由两个空行分隔,其它东西一行。不要使用太多的空行来分隔 代码中的逻辑段。示例:

def hello(name):
    print 'Hello %s!' % name


def goodbye(name):
    print 'See you %s.' % name


class MyClass(object):
    """This is a simple docstring"""

    def __init__(self, name):
        self.name = name

    def get_annoying_name(self):
        return self.name.upper() + '!!!!111'

表达式和语句

常规空格规则:
  • 不对一元运算符使用空格(例如 - 、 ~ 等等),对圆括号同理
  • 在二元运算符间使用空格

Good

exp = -1.05
value = (item_value / item_count) * offset / exp
value = my_list[index]
value = my_dict['key']

Bad

exp = - 1.05
value = ( item_value / item_count ) * offset / exp
value = (item_value/item_count)*offset/exp
value=( item_value/item_count ) * offset/exp
value = my_list[ index ]
value = my_dict ['key']