• Python编码规范02--基础规范--代码格式


    1、 缩进

      用4个空格来缩进代码。

      绝对不要用tab, 也不要tab和空格混用.。对于行连接的情况, 你应该要么垂直对齐换行的元素, 或者使用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,
                  ...
          }

    2、 分号

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

    3、 行宽

      每行代码尽量不超过 80 个字符,以下情况除外:

      1)    长的导入模块语句

      2)    注释里的URL

    4、 行连接

      1)    不要使用反斜杠连接行。

      2)    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'):

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

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

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

      5)    禁止复合语句,即一行中包含多个语句:

    # 正确的写法
    do_first()
    do_second()
    do_third()
    
    # 不推荐的写法
    do_first();do_second();do_third();

      6)    if/for/while一定要换行:

    # 正确的写法
    if foo == 'blah':
        do_blah_thing()
    
    # 不推荐的写法
    if foo == 'blah': do_blash_thing()

    5、 括号

      宁缺毋滥的使用括号。

      除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的。

    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)

    6、  空行

      模块级函数和类定义之间空两行;

      类成员函数之间空一行;

      函数中可以使用空行分隔出逻辑相关的代码。

    class A:
    
        def __init__(self):
            pass
    
        def hello(self):
            pass
    
    
    def main():
        pass   
  • 相关阅读:
    npm
    模块化开发
    Html input 标签
    H5 移动端布局
    Mysql指令
    php面向对象
    git指令
    css3 属性
    如何渲染数据
    angular 服务
  • 原文地址:https://www.cnblogs.com/mazhiyong/p/12504250.html
Copyright © 2020-2023  润新知