iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Google的Python编码规范标准
  • 667
分享到

基于Google的Python编码规范标准

2024-04-02 19:04:59 667人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录python 风格规范(Google)分号行长度括号缩进空行空格Python 风格规范(Google) 本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护。

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编码规范的资料请关注编程网其它相关文章!

--结束END--

本文标题: 基于Google的Python编码规范标准

本文链接: https://www.lsjlt.com/news/134057.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作