google Python編碼規範
阿新 • • 發佈:2021-08-20
一.編碼規範
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才能寫入