美文网首页
python代码规范

python代码规范

作者: jinminbox | 来源:发表于2019-07-21 20:17 被阅读0次

    从C#转到了python,重新梳理一下代码规范。

    一、四行缩进

    1、注意子代码块;
    2、注意括号中的换行;

    二、空白格

    1、注意不要空格的情况
    • 避免在行尾添加空格
    • 如果使用具有不同优先级的运算符,请考虑在具有最低优先级的运算符周围添加空格。但是,永远不要使用多个空格,并且在二元运算符的两边始终具有相同数量的空白。
     - 二元运算符左右都有一个空格。
    assignment (=), 
    augmented assignment (+=, -= etc.), 
    comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), 
    Booleans (and, or, not)
    
     - 紧靠括号或括号内。
    Yes: spam(ham[1], {eggs: 2})
    No:  spam( ham[ 1 ], { eggs: 2 } )
    
     - 在尾随逗号和后面的右括号之间。
    Yes: foo = (0,)
    No:  bar = (0, )
    
     - 关于冒号的缩进规则
    Yes:
        ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
        ham[lower:upper], ham[lower:upper:], ham[lower::step]
        ham[lower+offset : upper+offset]
        ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
        ham[lower + offset : upper + offset]
    No:
        ham[lower + offset:upper + offset]
        ham[1: 9], ham[1 :9], ham[1:9 :3]
        ham[lower : : upper]
        ham[ : upper]
    
     - 函数注释应该使用冒号的常规规则,并且如果存在,则始终在- >箭头周围留出空格。
    Yes:
        def munge(input: AnyStr): ...
        def munge() -> AnyStr: ...
    No:
        def munge(input:AnyStr): ...
        def munge()->PosInt: ...
    
     - 当用于指示关键字参数时,或者用于指示未注释函数参数的默认值时,请勿在=符号周围使用空格。
    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:
        def munge(sep: AnyStr = None): ...
        def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ...
    No:
        def munge(input: AnyStr=None): ...
        def munge(input: AnyStr, limit = 1000): ...
    

    三、注释

    保持注释始终处于最新状态。

    1、块注释

      块注释通常适用于跟随它们的一些(或所有)代码,并缩进到与该代码相同的级别。块注释的每一行都以#和单个空格开头(除非它是注释中的缩进文本)。

      块注释中的段落由包含单个#的行分隔。

    2、行注释

      谨慎使用行评论。

      行注释是与语句在同一行上的注释。行注释应与语句中至少两个空格分隔。它们应该以#和单个空格开头。

    3、文档字符串

    四、命名约定

    1、包和模块名称

      模块应具有简短的全小写名称。如果提高可读性,则可以在模块名称中使用下划线。Python包也应该有简短的全小写名称,但不鼓励使用下划线。

      当用C或C ++编写的扩展模块具有提供更高级别(例如更多面向对象)的接口的Python模块时,C / C ++模块具有前导下划线(例如_socket)。

    2、类名称

      类名通常应使用CapWords约定。

    3、类型变量名称

      同上。

    4、异常名称

      同上。

    5、全局变量名称

      同上。

    6、函数与变量名称

      函数名称应为小写,并根据需要用下划线分隔,以提高可读性。变量名称遵循与函数名称相同的约定。

      2只有在已经是主流风格(例如threading.py)的上下文中才允许使用mixedCase,以保持向后兼容性。

    7、函数和方法参数

      始终使用self作为实例方法的第一个参数。

      始终使用cls作为类方法的第一个参数。

      如果函数参数的名称与保留关键字冲突,通常最好附加单个尾随下划线而不是使用缩写或拼写损坏。因此class_比clss好。(或许最好是通过使用同义词来避免这种冲突。)

    8、常量

      常量通常在模块级别定义,并以全部大写字母书写,下划线分隔单词。示例包括 MAX_OVERFLOW和TOTAL。

    相关文章

      网友评论

          本文标题:python代码规范

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