目錄
- 閱讀源
- 什麼是 PEP8
- 什麼是 Python 之禅
- 什麼是文檔字元串
- 函數注解
- Python 命名規範
- Python 注釋有幾種
- 如何優雅地給一個函數加注釋
- 如何優雅地給一個類加注釋
- Python 代碼縮進中是否支援 Tab 和空格混用
- 是否可以在一句 import 中導入多個庫
- 給 Python 檔案命名時需要注意什麼
- 列舉幾個規範 Python 代碼風格的工具
閱讀源
python-面試通關寶典
什麼是 PEP8
PEP是 Python Enhancement Proposal 的縮寫,翻譯過來就是 Python增強建議書
簡單說就是一種編碼規範,是為了讓代碼“更好看”,更容易被閱讀
具體可參考:
https://www.python.org/dev/peps/pep-0008/
什麼是 Python 之禅
import this
什麼是文檔字元串
Python有一個很奇妙的特性,稱為 文檔字元串 ,它通常被簡稱為 docstrings 。DocStrings是一個重要的工具,由于它幫助你的程式文檔更加簡單易懂,你應該盡量使用它。你甚至可以在程式運作的時候,從函數恢複文檔字元串。
使用魔法方法'__doc__'可以列印docstring的内容
函數注解
def add(x:int, y:int) -> int:
return x + y
用 : 類型 的形式指定函數的參數類型,用 -> 類型 的形式指定函數的傳回值類型
Python 命名規範
命名規範:
1. 變量名隻能是字母、數字和下劃線的任意組合;
2. 變量名隻能以字母或下劃線開頭;
3. 變量名禁止使用關鍵字
4. 變量名區分大小寫
命名風格:
風格一:駝峰體(大駝峰式)
類
風格二:下劃線
普通變量、全局變量
命名約定:
1. 變量名不要使用中文和拼音(為了國際化)
2. 變量名要有意義
(1) 清單:xxx_list / xxx_ls
(2) 元組:xxx_tuple / xxx_tp
(3) 字元串:xxx_str / xxx_s1 / xxx_s2
(4) 單個字元:xxx_ch
(5) 字典:xxx_dict / xxx_dc
(6) 集合:xxx_set
(7) x、y、z:用來表示浮點型
(8) 除了(7)以外的字元,都表示整數,尤其是i、j、k、m、n
3. 盡量避免單字元名稱,用于計數器和疊代器除外
4. 普通變量用小寫字母,單詞之間用 _分隔
5. 全局變量全用大寫字母,單詞之間用 _分隔
6. 關于變量的“Internal”和“Public”
Internal(以_或者__及以上開頭的變量)表示僅子產品内使用或者在類中是保護或私有的
Public,非Internal變量
Type Public Internal
子產品 lower_with_under _lower_with_under
包 lower_with_under
類 CapWords(大駝峰式) _CapWords
異常類 CapWords
函數 lower_with_under() _lower_with_under()
全局/類常量 CAPS_WITH_UNDER _CAPS_WITH_UNDER
全局/類變量 lower_with_under _lower_with_under
執行個體變量 lower_with_under _lower_with_under (protected) or
__lower_with_under (private)
方法 lower_with_under _lower_with_under (protected) or
__lower_with_under (private)
函數/方法參數 lower_with_under
局部變量 lower_with_under
關于下劃線的命名約定
1. 單領先下劃線
例如:
_var
含義:
訓示變量供内部使用。通常不由Python解釋器強制執行(通配符導入除外)僅作為程式員的提示
2. 單尾拖尾下劃線
例如:
var_
含義:
避免與Python的關鍵字命名沖突
3. 雙重領先下劃線
例如:
__var
含義:
訓示變量在類的上下文中是私有的。由Python解釋器強制執行(觸發名稱修改)
4. 雙重領先和尾随下劃線
例如:
__var__
含義:
表示Python語言定義的特殊方法。避免這種命名方案為自己的屬性
5. 單下劃線
例如:
_
含義:
用作臨時或者無意義變量的名稱(不關心)
Python 注釋有幾種
單行注釋,多行注釋,docstring注釋
如何優雅地給一個函數加注釋
"""這一行:函數(函數、方法、生成器)是做什麼的(函數的作用)概述
這一行:對函數詳細的描述
Args: / :params 參數名字: (__表示兩個空格,節的内容都應該縮進2個空格)
__參數名字: 類型,含義(含義,如果>80 chars,則使用2或4個空格懸挂縮進)
__*args: 描述args
__*kwargs: 描述kwargs
Returns: / Yields:
__類型,含義,還可以舉例(如果傳回為None,可以省略)
Raises:
__IOError: An error occurred accessing the bigtable.Table object.
"""
如何優雅地給一個類加注釋
"""這一行:類是做什麼的(類的作用)概述
這一行:對類詳細的描述
Attributes: (如果類包含公共屬性的話,文檔字元串需要書寫一個Attributes段)
__sports: 類型,含義
__computers: 類型,含義
"""
Python 代碼縮進中是否支援 Tab 和空格混用
支援,Python 并沒有強制要求你用Tab或者用空格縮進,
但根據 PEP8 規範,不要使用Tab來縮進,也更不要Tab和空格混用,
推薦4個半角空格。
是否可以在一句 import 中導入多個庫
可以的
import json,random,requests
但根據 PEP8 ,導入應該獨占一行
給 Python 檔案命名時需要注意什麼
全小寫,單詞之間使用下劃線分隔
列舉幾個規範 Python 代碼風格的工具
pylint,black,pycharm也帶有pep8的代碼規範工具