python编码规范

最近在继续学习python编程,代码敲完后一看:歪歪扭扭,显然很丑。于是把个人觉得需要留意的代码规范大概学习与整理一下。本文参考《Python Style Guide》。

一、代码布局

缩进

每一级缩进用4个空格。

最大行宽

限制所有行的最大行宽为79个字符;文本长块,如文档字符串或注释,行长度应限制在72个字符以内。

空行

两行空行分割顶层函数和类的定义;类的方法定义用单个空行分割;额外的空行可在必要时分割不同的函数组、函数中的逻辑块,但是要尽量节约使用。

源文件编码

在核心python发布的代码应该总是使用UTF-8。

导入

多个导入分行写,始终写在文件的顶部,在模块注释和文档字符串之后。

二、表达式和语句中的空格

  • 逗号,冒号,分号之前避免空格
# Yes
if x == 4: print x, y; x, y = y, x
# No
if x == 4 : print x , y ; x , y = y , x
  • 二元运算符两边放置一个空格:
    涉及 =、符合操作符 ( += , -=等)、比较( == , < , > , != , <> , <= , >= , in , not in , is , is not )、布尔( and , or , not )。
  • 优先级高的运算符或操作符的前后不建议有空格。
# Yes
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

# No
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
  • 关键字参数和默认值参数的前后不要加空格
# Yes
def complex(real, imag=0.0):
    return magic(r=real, i=imag)

# No
def complex(real, imag = 0.0):
    return magic(r = real, i = imag)
  • 函数注释中,=前后要有空格,冒号和"->"的前面无空格,后面有空格。

三、注释

如果注释很短,可以省略末尾的句号。注释块通常由一个或多个段落组成。段落由完整的句子构成且每个句子应该以点号(后面要有两个空格)结束,并注意断词和空格。

非英语国家的程序员请用英语书写你的注释,除非你120%确信代码永远不会被不懂你的语言的人阅读。

慎用行内注释。行内注释是和语句在同一行,至少用两个空格和语句分开。

文档字符串的惯例是一个多行字符串,默认规范是:首行以大写字母开始,句号结尾,第二行是空行,从第三行开始是详细的描述。

四、版本标签

版本注记 (Version Bookkeeping)

如果你必须在源文件中包含git、Subversion、CVS或RCS crud信息,放置在模块的文档字符串之后,任何其他代码之前,上下各用一个空行:

__version__ = "$Revision$"# $Source$

五、命名规范

多种命名风格:

  • b(单个小写字母)

  • B(单个大写字母)

  • lowercase(小写串)

  • lower_case_with_underscores(带下划线的小写)

  • UPPERCASE(大写串)

  • UPPER_CASE_WITH_UNDERSCORES(带下划线的大写串)

  • CapitalizedWords(首字母大写的单词串或驼峰缩写)tips: 使用大写缩写时,缩写使用大写字母更好。故 HTTPServerError 比 HttpServerError 更好。

  • mixedCase(混合大小写,第一个单词是小写)

  • Capitalized_Words_With_Underscores(带下划线,首字母大写,丑陋)

模块名要简短,全部用小写字母,可使用下划线以提高可读性。

实例方法第一个参数是 ‘self’。

类方法第一个参数是 ‘cls’。

常量通常在模块级定义,由大写字母用下划线分隔组成。比如MAX_OVERFLOW和TOTAL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rainbow之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值