1. 程式人生 > >Python 程式設計規範

Python 程式設計規範

一 註釋:兩重意思,兩種方式

兩種方式:

  • #

個人註釋

  • """ """

docstrings : 表明如何使用這個包、模組、類、函式(方法),甚至包括使用示例和單元測試。推薦對每一個包、模組、類、函式(方法)寫 docstrings。

示例: 函式或者類或者模組的doc

#coding:gbk
def test():
    """ 用於test """
    print
print(test.__doc__)

#python test1.py
用於test 

兩重意思:

  • 註釋程式碼讓程式碼不起作用
  • 註釋寫上對程式碼的解釋,讓閱讀者更容易讀懂程式碼
問題:python 中引號有幾種,有何區別?各自的使用場景

引號有 4 種

  • '' : 單引號 使用場景
  1. 用來表示一個字串
str = 'a'
  1. 如果字串中有雙引號,為了避免使用轉義符,可使用單引號來定義這個字串
str = 'a"b'
  • "" : 雙引號

使用場景

  1. 用來表示一個字串
str = "a"
  1. 如果字串中有單引號,為了避免使用轉義符,可使用雙引號來定義這個字串
str = "a'b"
  • ''' ''' &""" """: 三個單雙引號 使用場景
  1. 程式碼註釋
  2. 如果字串中既有單引號,又有雙引號,為了避免使用轉義符,可使用三引號來定義這個字串
cmd = "ps -ef |grep python | awk '{print $1}' "
cmd = ''' xxx '''

二 縮排

兩種方式: tab 和空格

tab

建議設定 tab == 4個空格(一般編輯器都是這樣)

linux中vim設定方法: 開啟: ~/.vimrc, 輸入下邊內容

set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
建議使用4個空格

作用:縮排作為語法的一部分融入python語言中,python中通過縮排來確定程式碼塊的層次; 最終建議: 使用tab, 設定tab為4個空格

三 空行

目的:增加程式碼的可讀性,使程式碼看起來更加清晰 參考準則:

  • 模組中類和函式之間空兩行
  • 在類中的方法(類中的函式)之間空一行;
  • 在函式中的邏輯段落間加空行,即把相關的程式碼緊湊寫在一起,作為一個邏輯段落,段落間以空行分隔;
  • 在 import 不同種類的模組間加空行

四 命名

物件:庫、模組、類、函式、變數、常量 google 命名規範:類使用駝峰式,常量全大寫,其他的都採用小寫+下劃線

  • 庫 小寫一個名詞(專案名)
  • 模組 小寫,直接連線或者使用"_"(下劃線)如:
    python_class
    module.py
    define_module.py
    
  • 類 駝峰式,首字母大寫,不適用下劃線連線單詞,如:
    class ThisIsAClass(object):
        pass
    
  • 函式 小寫,用"_"(下劃線)隔開
    def this_is_func():
        pass
    
  • 變數 小寫,用"_"(下劃線)隔開,如:
    this_is_a_variable = 1
    
  • 常量 常量名所有字母大寫,由下劃線連線各個單詞,如:
    THIS_IS_A_CONSISTANT = 1
    

五 import

import 語句有以下幾個原則需要遵守

  • import 的次序
  1. 先 import Python 標準庫,再 import 第三方模組, 最後 import 自己開發的專案中的其他模組;這三種模組以空行分割開來。
  2. 一條 import 語句, 儘量只 import 一個模組

好的程式碼 VS 不好的程式碼

一 不要額外加很多括號

正確寫法

if foo:
    bar() 
while x:
    x = bar()
if x and y:
    bar()

不正確寫法 變數用括號括起來了

if (x):
    bar()
if not(x):
    bar()
return (foo)
二 空格
  • 括號內不要有空格.

    正確寫法

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

    錯誤寫法

    spam( ham[ 1 ], { eggs: 2 }, [ ])
    
  • 不要在逗號,分號,冒號前面加空格,但應該在它們後面加(除了在行尾). 正確寫法

    if x == 4print x, y 
    x, y = y, x
    

    錯誤寫法

    if x == 4print x , y 
    x , y = y , x
    
三 使用if not var 代替 if var == “” 或者if var ==[] 或者if var == {}等

列表,字典,字串,數字是否為 0

if num == 0;
if not num;

參考資料