`

Python编程规范

阅读更多
Python编程规范
by AKara 2010-08-07 @ http://blog.csdn.net/akara @ akaras(at)163.com

---------------------------------------------------------------------

  Python编程规范(for Python2.5 by AKara)

---------------------------------------------------------------------
  源文件布局规范
---------------------------------------------------------------------

  * 文件以utf-8编码保存。
  * 文件第一行svn prop:# $Id$
  * 文件第二行coding约定:# -*- coding: utf-8 -*-
  * 选择4个空格进行缩进。
  * 任一行代码长度不超过70列。
  * 用 # 来注释。
  * 非必要不写docstring。
  * 中文注释。避免英文注释。

---------------------------------------------------------------------
  命名规范
---------------------------------------------------------------------

  * 变量:unix风格,小写加下划线,如:foo_bar。
  * 常量:大写加下划线,如:ERROR_FOO_BAR。
  * 函数:和 变量 一致,如:def foo_bar(): pass
  * 类:大写C开头的驼峰法,如:CFooBar。(是的,与python lib风格不同)
  * 模块:小写无下划线,如:foobar.py。
  * 包:与 模块 一致。
 
  * "私有化"命名约定:
    一个且只一个下划线开始的命名。
    表示本命名不能超过最近命名空间索引。
    (不使用python的Private name mangling风格)

---------------------------------------------------------------------
  比较规范
---------------------------------------------------------------------
 
  * None:a is None
  * int / str:a == 163 / a == "AKara"
  * boolean:if a: / if not a:
  * 杜绝比较不同类型的对象。
 
    PS:虽然builtin的某些不同对象间是可按如下规则比较的:
    (1)None最小
    (2)Number次之
    (3)其他类型比较类型字符串,如:"dict" < "list"
    即:None < Number(int/float) < dict < list < str < tuple
    但Python后续版本并不保证维持这个规则。

---------------------------------------------------------------------
  import规范
---------------------------------------------------------------------

  * 所有import放在module最顶部。
  * 每次import只导入一个module,如:
    import akara
    import evil
  * 杜绝一次import多个module:import akara, evil
  * 杜绝import * from a。
  * 杜绝from a import b。
  * 杜绝import a as b。
  * 性质决定import先后:builtin > standard > engine > frozen > py。
 
---------------------------------------------------------------------
  module规范
---------------------------------------------------------------------

  * module分两种性质:(1)数据module (2)实现module
  * 数据module:只包含数据定义和初始化。
  * 实现module:只包含函数或类定义。
    不包含任何import时便执行的赋值或初始化(比如name = CAkara())
  * __load__():执行module命名空间内的对象初始化的函数。
  * __destroy__(): 执行module命名空间内的对象销毁的函数。
  * 跨模块索引数据对象须考虑热更新。过早优化不必要,常用a.b.var索引。

---------------------------------------------------------------------
  class规范
---------------------------------------------------------------------

  * class必须直接或间接继承全局的gobject(非python内建的object)。
    杜绝不继承任何基类的类定义:如 class CFoo: pass。
  * 杜绝重载类的__del__方法来进行对象析构资源回收。
    添加类的destroy方法统一销毁资源,并自行负责调用。
  * 避免多继承。
  * 总是让super来负责mro(Method resolution order)。

---------------------------------------------------------------------
  其他建议
---------------------------------------------------------------------

  * 安全性编码:tuple > list,frozenset > set,__debug__,assert。
  * 迭代时优先考虑iter版本的内建函数或方法,如:
    xrange / enumerate / zip / iterkeys / itervalues / iteritems ...
  * 适当使用:list comprehension / generator / generator expression
    decorator / __slots__ ...
  * 少用properties。
  * 用iter模式迭代大文件的读入。
  * 考虑向下取整结果的整除操作符://。
  * 大量字符串链接请用 "".join(str_list) 。
  * 精准捕捉异常。避免不指定Exception或指定Exception基类的except捕捉。
  * 如果需常用popleft语义,用collections.deque代替list。
  * 性能分析模块:hostshot > cProfile > profile。
  * 善用weakref模块管理引用。
  * -OO release。

---------------------------------------------------------------------
  充分理解
---------------------------------------------------------------------

  * 充分理解import a的path查找和介质载入处理过程。
  * 充分理解python中的命名空间和对象的关系。
  * 充分理解并合理利用clousure。
  * 充分理解shallow copy & deep copy。
  * 充分理解gc。
  * import this。

---------------------------------------------------------------------
  更多参考资料
---------------------------------------------------------------------

  <<Style Guide for C Code>> http://www.python.org/dev/peps/pep-0007/
  <<Style Guide for Python Code>> http://www.python.org/dev/peps/pep-0008/



本文来自CSDN博客http://blog.csdn.net/akara/archive/2010/08/09/5797974.aspx
分享到:
评论

相关推荐

    python编程规范.pdf

    Python 编程规范 Python 编程规范是指编写 Python 代码时需要遵守的一些约定和惯例,以便提高代码的可读性、可维护性和可重用性。本文简要叙述了 Python 编程规范的要点,包括代码风格、缩进方式、注释、命名约定、...

    Google Python 编程规范 PDF(官网整理版)

    Google Python编程规范是一份由Google提供的官方编程风格指南,旨在统一Python编程实践,提升代码的可读性和可维护性。文档包括了对于Python语言规范的详细说明,以及一些编程习惯上的最佳实践。在文档中,对于代码...

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

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

    Python编程规范.doc

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

    python编程规范

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

    python编程规范考试

    python编程规范,python编码排版、函数、对象等,考验自己是否规范编程,无答案

    Python编程规范PEP8.pdf

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

    python编程规范[借鉴].pdf

    Python 编程规范详解 Python 编程规范是指在编写 Python 代码时所遵循的规则和惯例,以确保代码的可读性、维护性和一致性。本文将详细介绍 Python 编程规范的要点和建议。 一致性是 Python 编程的重要原则之一。它...

    Python编程规范要求

    Python编程规范是编程实践中至关重要的一部分,它旨在提升代码的可读性和可维护性,以便团队协作和长期项目管理。以下是一些主要的Python编程规范要点: 1. **缩进**:Python语言的一大特色就是使用缩进来表示代码...

    python编程规范教程

    Python编程规范教程是针对Python程序员的一份重要指南,旨在提高代码质量、可读性和可维护性。本教程将深入探讨Python编程中的最佳实践、风格指南以及常见陷阱,以帮助开发者编写出优雅且高效的代码。 首先,我们要...

    Python编程规范v21

    【Python编程规范v21】遵循一套严格的编程标准和风格指南,旨在提高代码的可读性和一致性。规范中强调了多个关键点,包括但不限于代码的注释、编码格式、缩进、空格、空行和断行等。 首先,关于编码,所有Python...

    Python编程规范1

    《Python编程规范详解》 在Python编程中,遵循一定的规范至关重要,这不仅有助于提高代码的可读性,也有利于团队间的协作和代码的维护。以下是一些关键的Python编程规范,包括命名规范、注释标准、代码缩进与空格的...

    2018Python编程规范.doc

    **Python编程规范** **1. 目的** 本规范旨在为Python编程提供一套明确、一致的指导原则,以提升代码的可读性、可维护性和团队间的协作效率。通过遵循这些规则,我们可以确保代码的质量,降低错误率,提高开发速度...

    Python编程规范11.11

    【Python编程规范11.11】主要涵盖了Python编程中的一些基本规范和最佳实践,旨在提升代码的可读性和维护性。以下是对标题和描述中所述知识点的详细说明: 1. **字符编码**:ASCII编码最初用一个字节表示128个字符,...

    最新Python编程规范.doc

    这份最新Python编程规范旨在通过一系列详细的指导原则,确保开发团队产出的代码质量高、可读性强、易于维护。通过遵循这些规定,可以提高团队协作效率,降低代码维护成本,同时提升软件产品的整体质量。

Global site tag (gtag.js) - Google Analytics