Python编码规范(笔记)

本文详细介绍了Python编码规范,包括文档字符串、模块、函数和方法、类、注释和命名约定等方面,强调了使用4个空格缩进、避免在行尾使用分号、避免在函数和条件语句中使用括号、使用三重双引号表示文档字符串等最佳实践。还提到了Shebang的使用、行长度限制、多行字符串的处理以及避免在循环中使用+和+=操作符累积字符串等要点。
摘要由CSDN通过智能技术生成

# Yes 表示推荐,No 表示不推荐

参考:Python 编码规范(Google) https://www.runoob.com/w3cnote/google-python-styleguide.html

  • Shebang

大部分.py文件不必以#!作为文件的开始. 根据 PEP-394 , 程序的main文件应该以 #!/usr/bin/python2或者 #!/usr/bin/python3开始.

(译者注: 在计算机科学中, Shebang (也称为Hashbang)是一个由井号和叹号构成的字符串行(#!), 其出现在文本文件的第一行的前两个字符. 在文件中存在Shebang的情况下, 类Unix操作系统的程序载入器会分析Shebang后的内容, 将这些内容作为解释器指令, 并调用该指令, 并将载有Shebang的文件路径作为该解释器的参数. 例如, 以指令#!/bin/sh开头的文件在执行时会实际调用/bin/sh程序.)

#!先用于帮助内核找到Python解释器, 但是在导入模块时, 将会被忽略. 因此只有被直接执行的文件中才有必要加入#!.

  • 空格

按照标准的排版规范来使用标点两边的空格

括号内不要有空格

Yes:

spam(ham[1], {eggs: 2}, [])

No: 

spam( ham[ 1 ], { eggs: 2 }, [ ] )

不要逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾).

Yes:

 if x == 4:
         print x, y
     x, y = y, x

No: 

if x == 4 :
         print x , y
    x
, y = y , x

参数列表, 索引或切片的左括号前不应加空格.

Yes:

spam(1)

No:

spam (1)

 

Yes:

dict['key'] = list[index]

No: 

dict ['key'] = list [index]

在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not).

至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.

Yes:

x == 1

No: 

x<1

当'='用于指示关键字参数或默认参数值时, 不要在其两侧使用空格.

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)

不要用空格来垂直对齐多行间的标记, 因为这会成为维护的负担(适用于:, #, =等):

Yes:

foo = 1000  # 注释

long_name = 2  # 注释不需要对齐

 

dictionary = {
      "foo": 1,
      "long_name": 2,
      }

No:
foo               = 1000  # 注释
long_name = 2    
   # 注释不需要对齐

 

dictionary = {
      "foo"    
         : 1,
      "long_name": 2,
      }

  • 缩进

用4个空格来缩进代码。

绝对不要用tab, 也不要tab和空格混用.

对于行连接的情况, 你应该要么垂直对齐换行的元素, 或者使用4空格的悬挂式缩进(这时第一行不应该有参数):

Yes:  

# 与起始变量对齐
foo = long_function_name(var_one, var_two,
                                                var_three, var_four)

 

# 字典中与起始值对齐

foo = {
       long_dictionary_key: value1 +
                                             value2,
      ...

}

 

# 4 个空格缩进,第一行不需要
foo = long_function_name(
       var_one, var_two, var_three,
       var_four)

 

# 字典中 4 个空格缩进
foo = {
       long_dictionary_key:
               long_dictionary_value,
       ...

}

 

No: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值