gpt4 book ai didi

基于Google的Python编码规范标准

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基于Google的Python编码规范标准由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Python 风格规范(Google)

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

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

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

分号

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

行长度

每行不超过80个字符 。

以下情况除外:

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

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

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

?
1
2
3
4
5
推荐: 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' ):

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

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

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

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

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

括号

宁缺毋滥的使用括号 。

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

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

?
1
2
3
4
5
6
7
8
9
10
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(): ...
?
1
2
3
4
5
No:  if (x):
          bar()
      if not (x):
          bar()
      return (foo)

缩进

用4个空格来缩进代码 。

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

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

或者使用4空格的悬挂式缩进(这时第一行不应该有参数)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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,
            ...
        }
?
1
2
3
4
5
6
7
8
9
10
11
12
13
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,
               ...
       }

空行

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

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

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

空格

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

括号内不要有空格. 。

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

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

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

?
1
2
3
Yes: if x = = 4 :
          print x, y
      x, y = y, x
?
1
2
3
No:  if x = = 4 :
          print x , y
      x , y = y , x

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

?
1
Yes: spam( 1 )
?
1
no: spam ( 1 )
?
1
Yes: dict [ 'key' ] = list [index]
?
1
Yes: dict [ 'key' ] = list [index]

在二元操作符两边都加上一个空格.

比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not). 。

至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不 。

过两侧务必要保持一致. 。

?
1
Yes: x = = 1
?
1
No:  x< 1

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

?
1
Yes: def complex (real, imag = 0.0 ): return magic(r = real, i = imag)
?
1
No:  def complex (real, imag = 0.0 ): return magic(r = real, i = imag)

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

?
1
2
3
4
5
6
7
Yes:
      foo = 1000  # 注释
      long_name = 2  # 注释不需要对齐
      dictionary = {
          "foo" : 1 ,
          "long_name" : 2 ,
          }
?
1
No:<br>     foo       = 1000  # 注释<br>     long_name = 2     # 注释不需要对齐<br>     dictionary = {<br>         "foo"      : 1,<br>         "long_name": 2,<br>         }

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

原文链接:https://blog.csdn.net/weixin_39032019/article/details/117251584 。

最后此篇关于基于Google的Python编码规范标准的文章就讲到这里了,如果你想了解更多关于基于Google的Python编码规范标准的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com