网络编程
位置:首页>> 网络编程>> Python编程>> 基于Google的Python编码规范标准

基于Google的Python编码规范标准

作者:不吃西红柿丶  发布时间:2023-02-21 12:40:38 

标签:Google,Python,编码规范

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,
         }

来源:https://blog.csdn.net/weixin_39032019/article/details/117251584

0
投稿

猜你喜欢

  • 通过亲密性原则,我们可以将一个页面中的元素按照某种逻辑理解上的差异划分成不同的元素组合;再通过对齐原则,使这些不同的元素组合在视觉上看起来彼
  • 非原创:英文版混乱的标记语言XHTML2/HTML5源文地址:漫画英文版源文地址感谢我的同事Kevin Jaw的翻译。他的博客地址是:Kev
  • 本文以Python开发为例来进行说明,环境说明:(1) Python 3.x(我用的版本是 3.9 版本)(2)IDE开具 PyCharm(
  • 本篇文章给大家带来的内容是关于Python如何筛选序列中的元素 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、需求序列
  • 本文实例为大家分享了python实现邮箱发送信息的具体代码,供大家参考,具体内容如下一、SSLSSL 是指安全套接字层,简而言之,它是一项标
  • 编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,那么 collatz()就打印出 number
  • Perl的特殊符号@       数组   &nb
  • 这次我们来说一些很小的东西,相当小。不过先说一个故事:这天晚上,你打算出去下一次馆子,就行动了,找到了一家新开的小店进去坐了下来,服务员很殷
  • 今天的这篇文章是讲XHTML中的细节部分的,这篇续述的主题就是ID与CLASS怎么用,在标题中有提及使用原则与技巧,这里的使用原则与技巧是我
  • 本文研究的主要是Python进程间通信Queue的相关实例,具体如下。1.Queue使用方法:Queue.qsize():返回当前队列包含的
  • 最近接到一个领导需求,将xmind脑图直接转成可以导入的excel用例,并且转换成gui可执行的exe文件,方便他人使用。因为对Python
  • 人一旦习惯了某些东西就很难去改,以及各种各样的原因,新的浏览器越来越多,而老的总淘汰不了。增长总是快于消亡导致了浏览器兼容是成了谈不完的话题
  • 在通过拼组sql语句来实现数据插入的应用中,我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段
  • 做设计类网址导航的初衷是为了资源整合,也是在尝试解决问题。假定访问用户都是行业人士,或者目地性很强的有一定了解的用户,应该如何考虑这个组织系
  • lxml是Python中与XML及HTML相关功能中最丰富和最容易使用的库。lxml并不是Python自带的包,而是为libxml2和lib
  • Web网站可用性的关键指标是速度,更确切地说,是页面能以多快的速度出现在访问者的浏览器窗口里。影响速度的因素有很多种,包括Web服务器的速度
  • 接下来,我们将实现微信朋友圈的爬取。如果直接用 Charles 或 mitmproxy 来监听微信朋友圈的接口数据,这是无法实现爬取的,因为
  • 最近在做文章页盖楼显示的项目,数据来源是跟贴系统生成的UTF8格式的JSON数据。文章页的HTML编码格式是GB2312,在javascri
  • 当然首先得去下载ASPupload 程序,安装后使用!官方网站下载:http://www.aspupload.com/使用ASP实现文件上载
  • 1、路径https://www.lfd.uci.edu/~gohlke/pythonlibs/PS:网上说有时候报404,解决办法是换浏览器
手机版 网络编程 asp之家 www.aspxhome.com