統(tǒng)一的Python風(fēng)格實(shí)踐
請務(wù)必保持代碼的一致性
如果你正在編輯代碼, 花幾分鐘看一下周邊代碼, 然后決定風(fēng)格. 如果它們在所有的算術(shù)操作符兩邊都使用空格, 那么你也應(yīng)該這樣做. 如果它們的注釋都用標(biāo)記包圍起來, 那么你的注釋也要這樣.
制定風(fēng)格指南的目的在于讓代碼有規(guī)可循, 這樣人們就可以專注于”你在說什么”, 而不是”你在怎么說”. 我們在這里給出的是全局的規(guī)范, 但是本地的規(guī)范同樣重要. 如果你加到一個(gè)文件里的代碼和原有代碼大相徑庭, 它會(huì)讓讀者不知所措. 避免這種情況.
Google開源項(xiàng)目風(fēng)格指南-Python風(fēng)格指南
分號
不要在行尾加分號, 也不要用分號將兩條命令放在同一行.
行長度
每行不超過80個(gè)字符
括號
寧缺毋濫的使用括號
縮進(jìn)
用4個(gè)空格來縮進(jìn)代碼
空行
頂級定義之間空兩行, 方法定義之間空一行
空格
按照標(biāo)準(zhǔn)的排版規(guī)范來使用標(biāo)點(diǎn)兩邊的空格
Shebang
大部分.py文件不必以#!作為文件的開始. 根據(jù) PEP-394 , 程序的main文件應(yīng)該以 #!/usr/bin/python2或者 #!/usr/bin/python3開始.
注釋
確保對模塊, 函數(shù), 方法和行內(nèi)注釋使用正確的風(fēng)格
類
如果一個(gè)類不繼承自其它類, 就顯式的從object繼承. 嵌套類也一樣.
字符串
即使參數(shù)都是字符串, 使用%操作符或者格式化方法格式化字符串. 不過也不能一概而論, 你需要在+和%之間好好判定.
文件和sockets
在文件和sockets結(jié)束時(shí), 顯式的關(guān)閉它.
TODO注釋
為臨時(shí)代碼使用TODO注釋, 它是一種短期解決方案. 不算完美, 但夠好了.
導(dǎo)入格式
每個(gè)導(dǎo)入應(yīng)該獨(dú)占一行
語句
通常每個(gè)語句應(yīng)該獨(dú)占一行
訪問控制
在Python中, 對于瑣碎又不太重要的訪問函數(shù), 你應(yīng)該直接使用公有變量來取代它們, 這樣可以避免額外的函數(shù)調(diào)用開銷. 當(dāng)添加更多功能時(shí), 你可以用屬性(property)來保持語法的一致性.
命名
module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.
Main
即使是一個(gè)打算被用作腳本的文件, 也應(yīng)該是可導(dǎo)入的. 并且簡單的導(dǎo)入不應(yīng)該導(dǎo)致這個(gè)腳本的主功能(main functionality)被執(zhí)行, 這是一種副作用. 主功能應(yīng)該放在一個(gè)main()函數(shù)中.