`
2014马年
  • 浏览: 121562 次
  • 性别: Icon_minigender_1
  • 来自: 晋中
社区版块
存档分类
最新评论

PEP8 中文翻译,python的编程规范

阅读更多

英文原文地址:

http://legacy.python.org/dev/peps/pep-0008/

原文太长,这里展示一部分规范。

 

介绍

本文档改编自《Guido's original Python Style Guide essay》,还有一些来自《Barry's style guide》

 

一致性并不一定对(A Foolish Consistency is the Hobgoblin of Little Minds)

代码更多的是为了让人去读。

 

一致性很重要。但是更重要的是:知道何时保持一致性,很多时候不应该用代码规范。

 

下面的情况忽略掉代码规范:

  • 当用上代码规范后,让代码不容易阅读。
  • 和周围代码保持一直(可能是历史代码)
  • 由于代码的原因,没有任何理由修改代码(除了使用代码规范)
  • 与旧版本保持一直,或不支持代码规范中的写法

代码布局

Indentation(缩进)

使用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)

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)

 

还可以用下面的风格:

 

# 不需要额外的缩进
foo = long_function_name(
  var_one, var_two,
  var_three, var_four)

在闭合的括号中,可以选择下面两种方式,都行:

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

空格是绝对的首选。

python3 已经不允许空格和Tab混用了。

 

每行最大字符数

修改每行最大字符数到79,因为python标准库就是每行最大79个字符,

如果太长使用 反斜杠来换行:

 

with open('/path/to/some/file/you/want/to/read') as file_1, \
        open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

下面是在括号中换行的情况:

class Rectangle(Blob):

    def __init__(self, width, height,
                 color='black', emphasis=None, highlight=0):
        if (width == 0 and height == 0 and
                color == 'red' and emphasis == 'strong' or
                highlight > 100):
            raise ValueError("sorry, you lose")
        if width == 0 and height == 0 and (color == 'red' or
                                           emphasis is None):
            raise ValueError("I don't think so -- values are %s, %s" %
                             (width, height))
        Blob.__init__(self, width, height,
                      color, emphasis, highlight)

 

源码文件的编码

python2 默认ASCII ,python3 默认utf8

用utf8省事

 

import的使用

分行包含:

Yes: import os
     import sys

No:  import sys, os

 

下面的也可以:

from subprocess import Popen, PIPE

 

包含顺序也有讲究,顺序如下(他们之间最好加一个换行):

  • 标准库
  • 第三方库
  • 本地的应用或者库

使用绝对路径import,不用import *  ,可能会导入到名字相同的冲突的包

 

表达式和语句中的空格

避免多余的空格

1.括号里:

Yes: spam(ham[1], {eggs: 2})
No:  spam( ham[ 1 ], { eggs: 2 } )

2.逗号,冒号,分号 之后:

Yes: if x == 4: print x, y; x, y = y, x
No:  if x == 4 : print x , y ; x , y = y , x

3.方法调用:

Yes: spam(1)
No:  spam (1)

 

4.数组索引

Yes: dict['key'] = list[index]
No:  dict ['key'] = list [index]

 

5.多个赋值(或其他)操作:

Yes:

x = 1
y = 2
long_variable = 3

 

No:

x             = 1
y             = 2
long_variable = 3

 

其它建议

1.对于 assignment (=),augmented assignment (+=-= etc.), comparisons (==<>!=<><=>=innot inisis not), Booleans (andornot).,需要加上空格

Yes:

i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

 

No:

i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)

 

 

2.当=用于给参数赋默认值的时候,不要加空格

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)

3.多操作的时候,要换行

Yes:

if foo == 'blah':
    do_blah_thing()
do_one()
do_two()
do_three()

 

Rather not:

if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()

注释

优先更新注释,用英语写

 

命名

1.模块名短一点,都小写,用下划线。因为模块会映射到文件的名字,所以避免和系统限制冲突(大小写不区分,长度限制等)

2.类名:首字母大写,内部类加入前导下划线

3.异常名:加入后缀Error

4.函数名:小写+下划线

5.函数和方法的参数:实例使用self 开始,类使用cls 开始。如果和系统参数名重复,在其后加_

6.方法名和实例变量:小写+下划线

 

结束

 

分享到:
评论

相关推荐

    PEP8Python 编码规范

    PEP8是关于Python编码风格的规范,而如何将英文文档转成中文应当是遵循翻译原则和文档规范的问题。所以,正确理解这部分内容应该是:PEP8指导如何书写整洁的Python代码,并且在必要时如何将文档和注释用中文书写,...

    Python编程规范PEP8.pdf

    Python编程规范PEP8是一个由Python社区广泛认可和遵循的编程风格指南。它的全称是“Style Guide for Python Code”,旨在提升Python代码的可读性和一致性。PEP8最初由Python的创始人Guido van Rossum、Barry Warsaw...

    Python PEP8 编码规范中文版.zip

    Python PEP 8是Python编程语言的官方风格指南,由Guido van Rossum(Python之父)在2001年提出。PEP 8全称为"Python Enhancement Proposal 8",是Python社区广泛接受的代码风格指南,旨在提高代码的可读性和一致性,...

    Python PEP8编码规范中文版

    自2001年首版发布以来,经过多次修订和完善,PEP8已成为Python编程中普遍遵循的编码标准。中文版PEP8是对原英文版的翻译,方便中文语境下的Python开发者使用。 PEP8编码规范关注的要点包括代码布局(layout)、缩进...

    Python PEP8 编码规范中文版

    Python PEP8 编码规范中文版旨在为Python编程语言提供一套统一的代码编写标准,以便提升代码的可读性和一致性。PEP是Python Enhancement Proposal的缩写,它代表了Python增强提案,而PEP8是一份专门针对Python代码...

    Python PEP8 编码规范中文版.pdf

    Google Python PEP8 编码规范中文版,高清,带书签。 本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护。 如果你关注的是 Google 官方英文版, 请移步 Google Style Guide

    PEP8 Python编码规范

    PEP8是Python编程语言的官方编码规范,它由Python的核心开发者Guido van Rossum、Barry Warsaw和Nick Coghlan等人撰写和维护,最初于2001年发布。PEP是Python Enhancement Proposals的缩写,意为Python增强提案。PEP...

    Python编程规范.doc

    Python 编程规范 Python 是一种广泛应用于数据科学、人工智能、Web开发等领域的高级编程语言。为了确保 Python 代码的可读性、可维护性和可重用性,编写高质量的 Python 代码至关重要。因此,制定一套统一的编程...

    PEP 8 --python 编码规范中英文对照(更新)

    PEP 8 是一份关于Python编程语言的编码规范文档,旨在为Python的标准库以及广泛的应用程序提供一致性和可读性的指导原则。本篇文章将根据提供的部分原文内容进行深入解析。 #### 文档背景与目标 该文档最初是由...

    PEP8Python编码规范.pdf

    PEP8是Python编程语言的风格指南,它提供了一套规则,用于统一Python代码的编写风格,以便于提高代码的可读性和一致性。PEP是Python Enhancement Proposal的缩写,它是Python社区用来向Python开发团队提出改进意见或...

    python编程规范.pdf

    文件内容虽然部分由于OCR扫描错误导致识别不准,但我们可以从中提炼出与Python编程规范相关的重要知识点,尤其是与PEP 8编码风格指南相关的内容。 知识点详细说明: 1. PEP 8 编码规范: - PEP 8 是针对Python...

    Google Python 编程规范(HTML中文最新版)

    **谷歌Python编程规范详解** 谷歌Python编程规范是Google公司为Python开发者制定的一套代码编写标准,旨在提升代码的可读性、可维护性和团队协作效率。这份中文最新版的规范覆盖了命名规则、代码结构、注释与文档、...

    python编程规范

    根据给定的文件信息,我们可以提取以下关于Python编程规范的知识点: ### Python编程风格指南概述 Python编程风格指南(Python Style Guide),又称PEP 8,是由Guido van Rossum、Barry Warsaw以及Nick Coghlan等人...

    pycodestyle原来叫pep8Python编程风格检查程序

    `pycodestyle` 是一款非常重要的Python开发工具,它的主要功能是对Python源代码进行风格检查,确保代码遵循PEP 8的编码规范。PEP 8是Python社区广泛接受的编码风格指南,旨在提高代码的可读性和一致性。`pycodestyle...

    python PEP8 编码规范总结

    参照https://legacy.python.org/dev/peps/pep-0008/官方文档简单总结了python编程过程中应当遵守的编码规范,比如函数的命名、变量的命名等(PEP8编码规范)。

    Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第.pptx

    Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第 《Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第》是一本介绍Python编程语言及其应用领域的书籍,适合对Python编程感兴趣的读者...

    Python_PEP8_代码规范.pdf

    本文档旨在提供一份详细的指南,帮助开发者理解和遵循Python编程语言中广泛接受的最佳实践——PEP8代码规范。PEP8是Python Enhancement Proposal(Python改进提案)的一种,它定义了一系列推荐的编码习惯,旨在提高...

Global site tag (gtag.js) - Google Analytics