`

Python 代码风格 和 PEP8

 
阅读更多

转载自http://www.blogjava.net/lincode/archive/2011/02/02/343859.html

Python 的代码风格由 PEP 8 描述。这个文档描述了 Python 编程风格的方方面面。在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格。这样就易于阅读,易于在程序员之间交流。


1 变量

常量
 : 大写加下划线

USER_CONSTANT

对于不会发生改变的全局变量,使用大写加下划线。

私有变量
 : 小写和一个前导下划线

_private_value

Python 中不存在私有变量一说,若是遇到需要保护的变量,使用小写和一个前导下划线。但这只是程序员之间的一个约定,用于警告说明这是一个私有变量,外部类不要去访问它。但实际上,外部类还是可以访问到这个变量。

内置变量 : 小写,两个前导下划线和两个后置下划线

__class__

两个前导下划线会导致变量在解释期间被更名。这是为了避免内置变量和其他变量产生冲突。用户定义的变量要严格避免这种风格。以免导致混乱。


2 函数和方法

总体而言应该使用,小写和下划线。但有些比较老的库使用的是混合大小写,即首单词小写,之后每个单词第一个字母大写,其余小写。但现在,小写和下划线已成为规范。

私有方法 : 小写和一个前导下划线

def _secrete(self):
    
print "don't test me."

 

这里和私有变量一样,并不是真正的私有访问权限。同时也应该注意一般函数不要使用两个前导下划线(当遇到两个前导下划线时,Python 的名称改编特性将发挥作用)。特殊函数后面会提及。

特殊方法 : 小写和两个前导下划线,两个后置下划线

def __add__(self, other):
    
return int.__add__(other)

这种风格只应用于特殊函数,比如操作符重载等。

函数参数 : 小写和下划线,缺省值等号两边无空格

def connect(self, user=None):
    self._user 
= user



3 类

类总是使用驼峰格式命名,即所有单词首字母大写其余字母小写。类名应该简明,精确,并足以从中理解类所完成的工作。常见的一个方法是使用表示其类型或者特性的后缀,例如:
SQLEngine
MimeTypes

对于基类而言,可以使用一个 Base 或者 Abstract 前缀
BaseCookie
AbstractGroup

class UserProfile(object):
    
def __init__(self, profile):
        
return self._profile = profile

    
def profile(self):
        
return self._profile



4 模块和包

除特殊模块 __init__ 之外,模块名称都使用不带下划线的小写字母。
若是它们实现一个协议,那么通常使用lib为后缀,例如:
import smtplib

import os
import sys



5 关于参数

5.1 不要用断言来实现静态类型检测
断言可以用于检查参数,但不应仅仅是进行静态类型检测。 Python 是动态类型语言,静态类型检测违背了其设计思想。断言应该用于避免函数不被毫无意义的调用。

5.2 不要滥用 *args 和 **kwargs
*args 和 **kwargs 参数可能会破坏函数的健壮性。它们使签名变得模糊,而且代码常常开始在不应该的地方构建小的参数解析器。


6 其他

6.1 使用 has 或 is 前缀命名布尔元素

is_connect = True
has_member 
= False


6.2 用复数形式命名序列

members = ['user_1''user_2']


6.3 用显式名称命名字典

person_address = {'user_1':'10 road WD''user_2' : '20 street huafu'}


6.4 避免通用名称
诸如 list, dict, sequence 或者 element 这样的名称应该避免。

6.5 避免现有名称
诸如 os, sys 这种系统已经存在的名称应该避免。


7 一些数字
一行列数 : PEP 8 规定为 79 列,这有些苛刻了。根据自己的情况,比如不要超过满屏时编辑器的显示列数。这样就可以在不动水平游标的情况下,方便的查看代码。

一个函数 : 不要超过 30 行代码, 即可显示在一个屏幕类,可以不使用垂直游标即可看到整个函数。
一个类 : 不要超过 200 行代码,不要有超过 10 个方法。
一个模块 不要超过 500 行


8 验证脚本

可以安装一个 pep8 脚本用于验证你的代码风格是否符合 PEP8。

http://pypi.python.org/pypi/pep8/#downloads

>>easy_install pep8

>>pep8 -r --ignore E501 Test.py

这个命令行的意思是,重复打出错误,并且忽略 501 错误(代码超过 79 行)。

 

Ubuntu上的安装可以用命令

sudo apt-get install pep8

分享到:
评论

相关推荐

    PEP8Python 编码规范

    所以,正确理解这部分内容应该是:PEP8指导如何书写整洁的Python代码,并且在必要时如何将文档和注释用中文书写,同时遵守代码风格的一致性。 【部分内容】中提供了部分代码片段和编码规范的具体例子,下面我们根据...

    Python编程规范PEP8.pdf

    6. 兼容性:虽然PEP8是一个强大的代码风格指南,但它也指出了在特定情况下可以不完全遵循指南的情况。例如,如果遵循指南会降低代码的可读性,或者与项目内其他代码风格不一致,那么可以灵活调整。 7. 更新与变化:...

    Python 学习笔记1-去除PEP8代码风格警告

    PEP8 是 Python 官方指定的代码风格规范,旨在提高代码的可读性和维护性。但是,在使用 PyCharm 等集成开发环境(IDE)时,经常会遇到 PEP8 代码风格警告,该警告可能会对开发者的编程体验产生影响。 本笔记将讨论...

    Python PEP8 编码规范中文版.pdf

    Python PEP8 编码规范中文版是 Python 官方发布的编码规范指南,旨在提供一致的编码风格,提高代码的可读性和维护性。该规范涵盖了代码布局、命名惯例、编程风格等多方面的内容。 代码布局 代码布局是编码规范的...

    Python PEP8 编码规范中文版

    PEP是Python Enhancement Proposal的缩写,它代表了Python增强提案,而PEP8是一份专门针对Python代码风格的指南。在译者整理并翻译这篇文档时,他们希望这些规范能够对日常编程、代码阅读、修改以及维护提供帮助。...

    Python PEP8编码规范中文版

    PEP8编码规范,全称为“Style Guide for Python Code”,是由Python社区制定的一套编程风格指南,旨在提高Python代码的可读性和一致性。自2001年首版发布以来,经过多次修订和完善,PEP8已成为Python编程中普遍遵循...

    Python PEP8 编码规范中文版.zip

    PEP 8全称为"Python Enhancement Proposal 8",是Python社区广泛接受的代码风格指南,旨在提高代码的可读性和一致性,使所有Python程序员能够更容易地理解和合作。这份规范对Python程序的缩进、命名约定、注释、空格...

    一个自动格式化Python代码以符合PEP 8风格指南的工具.zip

    为了规范Python代码的编写,Python社区提出了PEP 8(Python Enhancement Proposal 8),这是一个官方的编码风格指南,旨在提高代码的可读性,降低理解和维护的难度。本压缩包包含的工具就是为了解决这个需求,帮助...

    PEP8Python编码规范.pdf

    PEP8 规定新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。尽量单独使用小写字母 'l',大写字母 'O' 等容易混淆的字母。模块命名尽量短小,使用全部小写的方式,可以使用下划线。包命名尽量短小,使用...

    PEP8 Python编码规范

    PEP8是其中最广为人知的一个,它为Python代码提供了一套编写风格的指南,目的是为了增强代码的可读性。 PEP8编码规范的内容主要涵盖以下几个方面: 1. **代码布局**:包括缩进(Indentation)、行的最大长度...

    Python_PEP8_代码规范.pdf

    PEP8是Python社区制定的一套编码风格指南,旨在帮助编写更加清晰、一致的Python代码。PEP8涵盖了多个方面,包括但不限于命名约定、缩进、空白使用、行长度限制、导入规则等。 #### 三、配置IDE进行PEP8提示 为了更...

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

    `pycodestyle` 原名为`pep8`,在2016年为了避讳Python之父Guido van Rossum的名字而改名。 使用`pycodestyle` 的好处在于,它可以帮助开发者养成良好的编码习惯,提升团队协作效率,因为所有人都遵循相同的代码风格...

    超越 PEP8 来讨论什么让 Python 代码感觉很棒 Strunk & White 的 Python 代码 .zip

    目录Python 风格的要素遵循大多数 PEP8 指南行长度的灵活性一致的命名不值得的挑剔编写良好的文档字符串范例和模式为你的代码风格增添一点禅意六合一,六合半打标准工具和项目结构一些启示贡献者遵循大多数PEP8 指南...

    autopep8自动格式化Python代码以使其符合PEP8规范

    `autopep8` 的工作原理是基于 `pycodestyle`(之前称为 `pep8`),一个用于检查 Python 代码是否符合 PEP 8 规范的库。`autopep8` 在此基础上进行了扩展,不仅能够检测代码中的不规范之处,还能自动进行修复。它提供...

    Python代码美学:深入PEP 8风格指南

    2. **易于阅读**:Python代码定义的清晰度使得它像可执行伪代码。 3. **易于维护**:Python的成功在于它的源代码是相当容易维护的。 4. **广泛的标准库**:Python的标凑库很庞大,包含用于互联网通信、网络通信、...

    Python-PEP8中文版.7z

    《Python PEP8编码规范》提供的Python代码编码规范基于Python主要发行版本的标准库。Python的C语言实现的C代码规范请查看相应的PEP指南。 这篇文档以及PEP 257(文档字符串的规范)改编自Guido原始的《Python Style...

    PyPI 官网下载 | pep8-1.7.1.tar.gz

    《PyPI官网下载的pep8-1.7.1.tar.gz:理解Python代码风格规范与pep8库》 Python编程语言以其简洁、优雅的语法而受到广大开发者喜爱,而这种优雅很大程度上得益于PEP 8编码规范的制定。PEP 8是Python社区公认的代码...

Global site tag (gtag.js) - Google Analytics