适用于Python和Django的编码标准:干净得像个美丽的女孩!
缩进
- 均匀使用4个空格进行缩进
行宽
每行代码尽量不要超过80个字符(特殊情况可以稍微超过80个,但最长不能超过120个)
原因 :
- 这对于查看side与side之间的差异很有用
- 方便在控制台下显示代码
- 标签太长可能是设计错误 ‷o 简单的说,自然语言使用双引号和机器标记使用单引号,因此大多数代码中都应使用单引号
- 自然语言使用双引号“...”,如错误消息;很多情况下还是unicode,使用 u"Hello world"
- 机器识别使用单引号 '...' 例如字典
- 正则表达式中的 key 使用原生双引号 r"..."
- 字符串文档字符串使用三个双引号“”“......”“”
空行
- 模块级函数和类定义之间有两个空行;
- 类成员函数之间有一个空行;
class A:def __init__(self):passdef hello(self):passdef main():pass- 可以使用多个空行来分隔多组相关的函数
- 可以在函数中使用空行来分隔逻辑相关的代码
编码
- 文件使用UTF-8编码
- 在函数中添加标识#--conding:utf-8--头文件(Python 3或更高版本不需要)
导入命令
- 导入命令应分行书写
- 导入命令应该使用绝对导入
- #正确的写法
- from foo. bar import Bar
- #写法
- z ..bar import Bar
- 导入命令应放在文件开头,模块描述和文档字符串之后,全局变量之前;
- 导入列表 按顺序排列,每组之间用空行分隔
- import os
- import sys
- import msgpackqimport zmport zm 导入其他模块定义类时可以使用相对导入
- 如果存在命名冲突,可以使用命名空间
空格 的参数列表中 是默认的 equal = ,两边不加空格。 # 正确的写法 def complex(real, imag=0.0):pass# 不推荐的写法 def complex(real, imag = 0.0):pass 不要在左括号后面和右括号前面添加多余的空格# 正确的写法 spam(ham[1], {eggs: 2})# 不推荐的写法 spam(ham[1], {eggs: 2}) Python 支持括号内换行符。此时有两种情况。 1。第二行在括号开头缩进 foo = long_function_name(var_one, var_dwo,var_third, var_four) if / for/ while 必须换行: # 正确写法 if foo == 'blah': do_blah_thing() # 不建议写法 if foo == 'blah': do_blash_thing() Comment 至少使用两个空格和语句分隔,小心,别用废话注释 # 正确写法 x = x + 1 # 边框高亮一像素 # 不建议这么写(废话注释) x = x + 1 # x 加 1 文档字符串规范在 PEP 257 中有详细说明。两个最基本的点是: 作者:raydang 链接:https://www.jianshu.com/p/c7455c178059 空格 二进制运算符两边各留一个空格 [=,-,+=,==,>,in,is not a]:# 正确写法 i = i + 1subscribed += 1x = x * 2 - 1hypot2 = x * x + y * yc = (a + b) * (a - b)#不建议写 i=i+1subscribed +=1x = x*2 - 1hypot2 = x*x + y*yc = (a+b) * (a-b ) 函数
后面必须有一个空格,
#正确写法 def complex(real, imag): pass#不建议写 def complex(real, imag ): pass 函数的参数列表中 字典对象左括号前不能有多余的空格
# 正确的写法 dict['key'] = list[index]# 不推荐的写法 dict['key'] = list [index]不要使用多余的空格来对齐输入命令
#正确的写法 x = 1y = 2long_variable = 3# 不建议写成 x = 1y = 2long_variable = 3 换行符
2。第二行缩进4个空格,方便括号开头换行 Case
def long_function_name(var_one, var_dwo, var_third, var_four):print(var_one)3。使用反斜杠\换行符、二元运算符+。等等应该出现在行尾;长字符串也可以使用此方法打破行
session.query(MyTable).\ filter_by(id=1).\ one()print 'Hello, '\ '%s %s!' %\ (“哈利”、“波特”)4。禁止复合命令,即一行多个命令:
# 正确写法 do_first() do_second() do_third()# 不建议写 do_first();do_second();do_third(); block Comment ❙⸸字符“#”后留一个空格并用空行分隔段落(也需要“#”) # 块注释 # 块注释 ## 块注释 # 块注释
行注释
docstring
"""返回 foobar 可选的plotz 表示首先冻结 bizbaz。"""""""文档字符串 """def
之后的块来解释。 """
的末尾应位于单独的一行上,除非文档字符串只有一行。命名约定
MAX_OVERFLOW = 100Classdef FooBobar self, print_):print(print_)
来源:简单书
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。