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

Reference:

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

Python Style Guide,布布扣,bubuko.com

时间: 2024-10-05 06:12:02

Python Style Guide的相关文章

Google Python Style Guide

http://google-styleguide.googlecode.com/svn/trunk/pyguide.html#Comments http://zh-google-styleguide.readthedocs.org/en/latest/google-python-styleguide/python_language_rules/ Google Python Style Guide

python coding style guide 的高速落地实践

python coding style guide 的高速落地实践 机器和人各有所长,如coding style检查这样的可自己主动化的工作理应交给机器去完毕,故发此文帮助你在几分钟内实现coding style的自己主动检查. 1.有哪些著名的Python Coding Style Guide PEP8 https://www.python.org/dev/peps/pep-0008/ 发明Python语言丰碑人物Guido van Rossum的亲自写的Coding Style, 知名度5颗

Google Style Guides-Shell Style Guide

作者声明 这篇翻译文章对我来说是有点小挑战的.由于我英语实在非常烂,勉强能够看懂一些技术文档,能够猜出大概的含义.可是翻译对我来说算是一个挑战,看英文文档已经不是一天两天的事了,可是这个篇文章却是我的处女作,通读了这篇翻译后的文章,已经发现部分语句翻译的非常不好,可是我没有能力纠正好,加上时间上不同意,最后我还是厚着脸皮放到了博客上,假设有幸某位读者读到我这蹩脚的翻译.希望你能够在唾骂我的同一时候也给出正确的翻译让我能够修正.原文參见附录. 背景 使用什么shell? Bash是同意的可运行文件

Shell Style Guide

Shell Style Guide Revision 1.26 Paul ArmstrongToo many more to mention Each style point has a summary for which additional information is available by toggling the accompanying arrow button that looks this way: ▽. You may toggle all summaries with th

Google C++ Style Guide的哲学

Google C++ Style Guide并不是一个百科全书,也不是一个C++使用指南,但它描述适用于Google及其开源项目的编码指南,并不追求全面和绝对正确,也有许多人置疑它的一些规则.但作为一个最具影响力的编码规范,它里面有许多内容值得我们研究学习. 以下主要摘自GSG负责人Titus Winters在CppCon 2014上的演讲. 制订Google C++ Style Guide的目的 引导开发去做对的事,同时不易犯错. 哲学总结 关注于读者,而非作者 (Optimize for t

一张图总结Google C++编程规范(Google C++ Style Guide)

Google C++ Style Guide是一份不错的C++编码指南,我制作了一张比較全面的说明图,能够在短时间内高速掌握规范的重点内容.只是规范毕竟是人定的,记得活学活用.看图前别忘了阅读以下三条重要建议: 1 保持一致也很重要,假设你在一个文件里新加的代码和原有代码风格相去甚远的话,这就破坏了文件本身的总体美观也影响阅读,所以要尽量避免. 2 一些条目往往有例外,比方以下这些,所以本图不能取代文档,有时间还是把PDF认真阅读一遍吧. 异常在測试框架中确实非常好用 RTTI在某些单元測试中很

Google C++ style guide——C++类

1.构造函数的职责 构造函数中只进行那些没有实际意义的初始化,因为成员变量的"有意义"的值大多不在构造函数中确定. 可以的话,使用Init()方法集中初始化为有意义的数据. 优点:排版方便,无需担心类是否初始化. 缺点: 1)在构造函数中不易报告错误,不能使用异常: 2)操作失败会造成对象初始化失败,引起不确定状态: 3)构造函数内调用虚函数,调用不会派发到子类实现中,即使当前没有子类化实现,将来仍是隐患: 4)如果有人创建该类型的全局变量,构造函数将在main()之前被调用,有可能破

Google Java Style Guide

http://google.github.io/styleguide/javaguide.html Google Java Style Guide Table of Contents 1 Introduction 1.1 Terminology notes 1.2 Guide notes 2 Source file basics 2.1 File name 2.2 File encoding: UTF-8 2.3 Special characters 3 Source file structur

Google JavaScript Style Guide

转自:http://google.github.io/styleguide/javascriptguide.xml Google JavaScript Style Guide Revision 2.93 Aaron Whyte Bob Jervis Dan Pupius Erik Arvidsson Fritz Schneider Robby Walker Each style point has a summary for which additional information is ava