1. 程式人生 > 其它 >google Python編碼規範

google Python編碼規範

一.編碼規範

1.行長度

每行不超過80個字元

一個文字字串在一行放不下, 可以使用圓括號來實現隱式行連線

例子


  x = ('test test'
  'test test')
 
相當於X='test test test test'

其不對註釋有影響

2.關於縮排

用4個空格來縮排程式碼

3.關於字典,列表,元祖尾部逗號

僅當 ], ), } 和末位元素不在同一行時,推薦使用序列元素尾部逗號

例子

Yes:   golomb3 = [0, 1, 3]
Yes:   golomb4 = [
           0,
           1,
           4,
           6,
       ]
  No:    golomb4 = [
           0,
           1,
           4,
           6
       ]

4.關於空行

類的定義和不在類內的方法定義空兩行

類內的方法直接空一行

5.關於空格

比較運算子,前後都空一個
x == 1

非比較運算子,後都空一個
print(x, y)
{eggs: 2}

賦值運算賦值的是方法裡的關鍵字形參不空格
requests.get(url="xxxxx")

6.Shebang

大部分.py檔案不必以#!作為檔案的開始. 根據 PEP-394 , 程式的main檔案應該以 #!/usr/bin/python2 或者 #!/usr/bin/python3 開始.

7.註釋

函式和方法的註釋

這兩種都可以主要是簡單明瞭
def md5_encrypt(data):
    '''
    MD5加密  #方法簡介
    :param data: 加密引數
    :return: 加密後的值
    '''
    
 def md5_encrypt(data):
    '''MD5加密'''
 

普通註釋要一目瞭然

TODO註釋

程式碼留位置方便下次定位或者經常修改的位置  #todo 或者#TODO

8.標點符號,拼寫和語法

駝峰體addData 或者下劃線 add_data

常量全大寫

9.字串中有變數

字串中有變數
Yes: x = a + b
     x = '{}, {}!'.format(imperative, expletive)
     x = 'name: %s; score: %d' % (name, n)
 %s代表字串,%d代表數字
Python3引進如果沒有{} 推薦使用 f'{變數a}'

列表內的字串拼接推薦用join
a = ''.join(ls)

10.檔案管理

推薦使用with with內程式碼結束會自動關閉檔案

with open("hello.txt") as hello_file:
    for line in hello_file:
        print(line)
#這裡推薦使用for 按行讀取

11.匯入格式

每個匯入應該獨佔一行, typing 的匯入除外

12.一行語句

通常每個語句應該獨佔一行不過, 如果測試結果與測試語句在一行放得下, 你也可以將它們放在同一行. 如果是if語句, 只有在沒有else時才能這樣做. 特別地, 絕不要對 try/except 這樣做, 因為try和except不能放在同一行.

示範

Yes:

  if foo: bar(foo)
  try:
      bar(foo)
  except ValueError: 
    baz(foo)
No:

  if foo: bar(foo)
  else:   baz(foo)

  try:               bar(foo)
  except ValueError: baz(foo)

  try:
      bar(foo)
  except ValueError: baz(foo)

13.常見的一些細節錯誤

[1,12,3,3,], 相當於 ([1, 12, 3, 3],)

元祖型別(1,2)只讀不可寫要轉換成list才能寫入