編寫地道的Python代碼 Code Like a Pythonista: Idiomatic Python

來源:互聯網
上載者:User

原文地址http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html,我挑一些自認為的重點翻譯過來,總之,代碼是寫給人看的,不是寫給機器執行的。


  • 留白(一)

        (1:每個縮排層級增加4個空格;

        (2:不要使用Tab鍵(我就一直使用Tab鍵,很方便,這條有點不合理);

        (3:不要混用空格和Tab鍵;

        (4:函數之間一個空行;

        (5:類之間兩個空行;


  • 留白(二)

        (1:在dicts,lists,tuples,函數函數的“,”號之後,留一個空格;在dicts的“:”後面留一個空格;

        (2:賦值和比較的兩次各留一個空格;

        (3:緊挨右括弧或者緊挨左括弧的兩邊不要留白,函數參數列表前不要留白;

        (4:docstrings內不要留白


  • 命名

        (1:joined_lower,函數、方法、和屬性使用;

        (2:joined_lower 或者 ALL_CAPS,適合常量的定義(個人趨向於ALL_CAPS);

        (3:StudlyCaps,類的命名;

        (4:camelCase,一般不要使用,除非是延續舊代碼習慣;

        (5:屬性 interface, _internal, __private,盡量避免使用__private,原因不翻譯了,好長的,照做就OK了。


  • 長句和串連

        (1:保持一行在80個字元以內;

        (2:(), [], {} 內有隱藏的跨行串連功能;

  • def __init__(self, first, second, third, 

  •                       fourth, fifth, sixth): 

  •     output = (first + second + third 

  •                      + fourth + fifth + sixth)

        (3:其他情況用"\"做串連用,注意,"\"必須是此行的最後一個字母,其後有任何字元串連的功能將失效。

  • VeryLong.left_hand_side \

  •         = even_longer.right_hand_side()


  • 長字串

        (1:緊鄰的字串將被解析器合并為一個字串;

        (2:r首碼的字串不進行任何轉義;

        (3:字串變數的串連需要用"+";

        (4:跨行的字串使用 """ """或者''' '''。 


  • 文檔字串和注釋

         文檔字串(docstring)用來說明函數的用途和用法(給使用者看)

        (1:解釋函數的功能;

        (2:介紹參數,傳回值和可能拋出的異常;

        (3:最好說明調用方法;尤其當這個函數有一個很耦合的調用者

    

        注釋用來說明函數的實現方法,用來維護代碼(給開發和維護代碼人看)

        (1:# !!! BUG: ...

        (2:# !!! FIX: This is a hack

        (3:# ??? Why is this here?


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.