PEP8

作者: 奥特曼255 | 来源:发表于2018-08-17 21:10 被阅读0次

    每级缩进用4个空格

    • Yes
    # 对准左括号
    foo = long_function_name(var_one, var_two,
                             var_three, var_four)
    
    # 不对准左括号,但加多一层缩进,以和后面内容区别。
    def long_function_name(
            var_one, var_two, var_three,
            var_four):
        print(var_one)
    
    # 悬挂缩进必须加多一层缩进.
    foo = long_function_name(
        var_one, var_two,
        var_three, var_four)
        
        
    # if语句跨行时,推荐额外添加缩进。
    if (this_is_one_thing
            and that_is_another_thing):
        do_something()
    
    • No
    # 不使用垂直对齐时,第一行不能有参数。
    foo = long_function_name(var_one, var_two,
        var_three, var_four)
    
    # 参数的缩进和后续内容缩进不能区别。
    def long_function_name(
        var_one, var_two, var_three,
        var_four):
        print(var_one)
    

    右边括号也可以另起一行。有两种格式,建议第2种

    # 右括号不回退,个人不推荐
    my_list = [
        1, 2, 3,
        4, 5, 6,
        ]
    result = some_function_that_takes_arguments(
        'a', 'b', 'c',
        'd', 'e', 'f',
        )
    
    # 右括号回退
    my_list = [
        1, 2, 3,
        4, 5, 6,
    ]
    result = some_function_that_takes_arguments(
        'a', 'b', 'c',
        'd', 'e', 'f',
    )
    

    空格或Tab?

    • 空格是首选的缩进方法
    • Tab仅仅在已经使用tab缩进的代码中为了保持一致性而使用。
    • Python3 中不允许混合使用Tab和空格缩进
    • Python2 的包含空格与Tab和空格缩进的应该全部转为空格缩进。

    空行

    • 两行空行分割顶层函数和类的定义。
    • 类的方法定义用单个空行分割。
    • 额外的空行可以必要的时候用于分割不同的函数组,但是要尽量节约使用。
    • 额外的空行可以必要的时候在函数中用于分割不同的逻辑块,但是要尽量节约使用。

    源文件编码

    • 在核心Python发布的代码应该总是使用UTF-8(ASCII在Python 2)。
    • Python 3(默认UTF-8)不应有编码声明。

    导入在单独行

    • Yes
    import os
    import sys
    from subprocess import Popen, PIPE
    
    • No
    import sys, os
    
    • 导入始终在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。
    • 导入顺序如下:标准库进口,相关的第三方库,本地库。各组的导入之间要有空行。

    禁止使用通配符导入。

    通配符导入(from import *)应该避免,因为它不清楚命名空间有哪些名称存,混淆读者和许多自动化的工具。

    字符串引用

    • Python中单引号字符串和双引号字符串都是相同的。注意尽量避免在字符串中的反斜杠以提高可读性。
    • 根据PEP 257, 三个引号都使用双引号

    命名

    • 变量名和函数名
      用下划线命名。
    • 类名
      类名用大写字母开头的驼峰命名
    • 包和模块名
      模块名要简短,全部用小写字母,可使用下划线以提高可读性。包名和模块名类似,但不推荐使用下划线。

    相关文章

      网友评论

          本文标题:PEP8

          本文链接:https://www.haomeiwen.com/subject/wyatiftx.html