• Python编码规范 -- Python Style Guide


      Python代码风格规范.

    @1:参数缩进:(2种形式)

    <1> 

    foo = long_function_name(var1, var2,
    
                             var3, var4)
    
    #第1行有参数, 第2行参数与第1行对齐

    <2>

    foo = long_function_name(
    
        var1, var2, var3, 
    
        var4)
    
    #第1行须没有参数, 第2行前空4个空格, 第3行与第2行对齐

    @2:顶级定义之间空2行, 方法定义之间空1

      类中第1个方法前总是应该空1行, 某些函数内部也可以适当的加空行

    @3:不要在逗号, 分号, 冒号前面加空格, 但应该在他们后面加(除了在行尾)

    @4:二元运算符两侧应该加空格, 但当”=”用于指示关键字参数或默认参数时不要加空格,如:

    def complex(read, image=0.0):    # “=”两侧无空格

    @5:总是使用最特化的版本,如/usr/bin/python2.4, 而不是/usr/bin/python2

    @6:如果不是"简短,显然或函数不被外部可见", 任何函数都需要一个文档字符串.

    @7:对于复杂的操作, 应该在其操作开始前写上若干行注释, 对于不是一目了然的代码, 应该在其行尾添加注释.

    @8:如果一个类不继承自其它类, 就显式的从object类继承, 嵌套类也一样.

    #NO------------------------------------
    class SampleClass:
      pass 
    
    class OuterClass:
      class InnerClass:
        pass
     
    
    #YES-----------------------------------
    class SampleClass(object):
      pass 
    
    class OuterClass(object):
      class InnerClass(object):
        pass
     
    class ChildClass(ParentClass):

    @9: 尽量用format,而不是+. 但如果两个变量紧挨着,则使用+.

    name = "lxw"
    age = 24
    x = "{0}, {1}!".format(name, age)   #YES
    #x = name + ", " + str(age) + "!"   #NO
    sex = "male"
    #y = "{}{}".format(name, sex)       #NO
    y = name + sex                      #YES 

    @10:避免在循环中用+和+=操作符来累加字符串. 由于字符串是不可变的, 这样做会创建不必要的临时对象, 并且导致二次方而不是线性的运行时间.

    可以将每个子串加入列表, 然后在循环结束后用 .join 连接列表.

    #Yes--------------------------
         items = ['<table>']
         for last_name, first_name in employee_list:
             items.append('<tr><td>%s, %s</td></tr>' % (last_name, first_name))
         items.append('</table>')
         employee_table = ''.join(items)
    #No--------------------------
        employee_table = '<table>'
        for last_name, first_name in employee_list:
            employee_table += '<tr><td>%s, %s</td></tr>' % (last_name, first_name)
        employee_table += '</table>'

    @11:为多行字符串使用三重引号,而非三重单引号. 文档字符串必须使用三重双引号.

    @12:推荐使用with语句以管理文件:

    with open("hello.txt") as hello_file:
        for line in hello_file:
            print line

    @13:每个导入应该独占一行

    #Yes---------------------
    import os
    import sys
    #No---------------------
    import os, sys

    @14:Python用下划线作为变量前缀和后缀指定特殊变量。

    _xxx    不能用'from module import *'导入
    __xxx__  系统定义名字
    __xxx    类中的私有变量名

    核心风格:避免用下划线作为变量名的开始。

    "单下划线" 开始的成员是proctect成员,意思是只有类对象和子类对象能访问到这些变量;

    "双下划线" 开始的成员是private成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

    Reference:

    Google 开源项目风格指南PYTHON风格规范: http://zh-google-styleguide.readthedocs.org/en/latest/google-python-styleguide/python_style_rules/

  • 相关阅读:
    (二)Linux进程调度器CPU负载 【转】 sky
    Tmux 使用教程【转】 sky
    Linux kernel中常见的宏整理【转】 sky
    linux内核内存slab,伙伴系统,内存碎片,内存耗尽(OOM)杀手,内存资源控制器memcg,KASAN学习笔记【转】 sky
    格式化log输出【转】 sky
    Linux虚拟化KVMQemu分析(十一)之virtqueue【转】 sky
    Linux内核内核数据类型【转】 sky
    Linux中断管理 (1)Linux中断管理机制【转】 sky
    Linux内存管理 (25)内存sysfs节点解读【转】 sky
    (一)Linux进程调度器基础【转】 sky
  • 原文地址:https://www.cnblogs.com/lxw0109/p/Python-Style-Guide.html
Copyright © 2020-2023  润新知