新闻动态

基于Google的Python编码规范标准

发布日期:2022-02-01 19:03 | 文章来源:CSDN

Python 风格规范(Google)

本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护。

如果你关注的是 Google 官方英文版, 请移步 Google Style Guide

以下代码中 Yes 表示推荐,No 表示不推荐。

分号

不要在行尾加分号, 也不要用分号将两条命令放在同一行。

行长度

每行不超过80个字符

以下情况除外:

  • 长的导入模块语句注释里的URL
  • 不要使用反斜杠连接行。

Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点.

如果需要, 你可以在表达式外围增加一对额外的圆括号。

推荐: foo_bar(self, width, height, color='black', design=None, x='foo',
 emphasis=None, highlight=0)
 
  if (width == 0 and height == 0 and
color == 'red' and emphasis == 'strong'):

如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:

x = ('这是一个非常长非常长非常长非常长 '
  '非常长非常长非常长非常长非常长非常长的字符串')

在注释中,如果必要,将长的URL放在一行上。

Yes:  # See details at
# http://www.example.com/us/developer/documentation/api/content/v2.0/csv_file_name_extension_full_specification.html
No:  # See details at
  # http://www.example.com/us/developer/documentation/api/content/\
  # v2.0/csv_file_name_extension_full_specification.html

注意上面例子中的元素缩进; 你可以在本文的 :ref:`缩进 <indentation>`部分找到解释.

括号

宁缺毋滥的使用括号

除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号.

不过在元组两边使用括号是可以的.

Yes: if foo:
bar()
  while x:
x = bar()
  if x and y:
bar()
  if not x:
bar()
  return foo
  for (x, y) in dict.items(): ...
No:  if (x):
bar()
  if not(x):
bar()
  return (foo)

缩进

用4个空格来缩进代码

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

对于行连接的情况, 你应该要么垂直对齐换行的元素(见 :ref:`行长度 <line_length>` 部分的示例),

或者使用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: # 第一行有空格是禁止的
foo = long_function_name(var_one, var_two,
 var_three, var_four) 
# 2 个空格是禁止的
foo = long_function_name(
  var_one, var_two, var_three,
  var_four) 
# 字典中没有处理缩进
foo = {
 long_dictionary_key:
  long_dictionary_value,
  ...
}

空行

顶级定义之间空两行, 方法定义之间空一行

顶级定义之间空两行, 比如函数或者类定义. 方法定义, 类定义与第一个方法之间, 都应该空一行.

函数或方法中, 某些地方要是你觉得合适, 就空一行.

空格

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

括号内不要有空格.

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

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]
Yes: 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,
}

以上就是基于Google的Python编码规范标准的详细内容,更多关于Google的Python编码规范的资料请关注本站其它相关文章!

海外稳定服务器

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部