• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于Google的Python编码规范标准

    Python 风格规范(Google)

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

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

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

    分号

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

    行长度

    每行不超过80个字符

    以下情况除外:

    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:  x1

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

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

    您可能感兴趣的文章:
    • python编码总结(编码类型、格式、转码)
    • Python编码类型转换方法详解
    • Python编码爬坑指南(必看)
    • python编码最佳实践之总结
    • Python编码时应该注意的几个情况
    • 学习python处理python编码问题
    • python入门课程第二讲之编码规范知多少
    上一篇:Pytest执行unittest TestSuite(测试套件)的实现方法
    下一篇:带你精通Python正则表达式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    基于Google的Python编码规范标准 基于,Google,的,Python,编码,