<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Python code standard

      這又是一篇轉載文章, 好文章! 


      先給一個google推薦的規范

      http://google-styleguide.googlecode.com/svn/trunk/pyguide.html

       

      接著是Style Guide for Python Code

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

       

      啄木鳥上有中文翻譯. 

      http://wiki.woodpecker.org.cn/moin/PythonCodingRule

       

       

      最后是正文,  轉載自http://blog.csdn.net/akara/archive/2010/08/09/5797974.aspx

      [注,  用中劃線標注的觀點, 是我不太認同的]

       

      [原創]Python編程規范
      by AKara 2010-08-07 @ http://blog.csdn.net/akara @ akaras@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中的命名空間和對象的關系。
        * 充分理解并合理利用closure。
        * 充分理解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/

      posted @ 2011-01-19 15:01  harrychinese  閱讀(626)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产精品国产精品国产专区不卡| 久久大香萑太香蕉av黄软件| 久久热这里只有精品最新| 衡阳市| 九九热在线视频观看最新| 国产中文字幕精品免费| 亚洲AVAV天堂AV在线网阿V| 国内熟妇人妻色在线三级| 欧洲成人在线观看| 扒开粉嫩的小缝隙喷白浆视频| 孕妇怀孕高潮潮喷视频孕妇| 色综合色综合久久综合频道| 精品熟女少妇av免费久久| 青青草一区在线观看视频| 亚洲乱理伦片在线观看中字| 精品粉嫩国产一区二区三区| 日本中文字幕久久网站| 狠狠色狠狠色五月激情| 国产私拍大尺度在线视频| 国产精品老熟女一区二区| 嗯灬啊灬把腿张开灬动态图| 久在线视频播放免费视频| 亚洲欧美偷国产日韩| 国产高潮刺激叫喊视频| 日本边添边摸边做边爱喷水| 国产一区二区三区怡红院| 精品日韩色国产在线观看| 亚洲AV成人片不卡无码| japanese边做边乳喷| 国产一区二区三区四区激情| 精品国产成人一区二区| 色悠悠久久精品综合视频| 国产成人A在线视频免费| 久久天天躁夜夜躁狠狠躁2022| 亚洲色欲在线播放一区| 国产精品小视频一区二页| 国产一卡2卡三卡4卡免费网站| 人妻少妇无码精品专区| 亚洲国产成人无码影片在线播放| 久久国内精品自在自线91| 最新精品露脸国产在线|