Fuchsia 專案遵循 Google Python 樣式指南,並進行了幾項改良。
Google Python 風格指南允許更多變化 (大概是為了涵蓋大量現有來源)。這份指南的選項較少,因此,Fuchsia Python 檔案也會遵守 Google 樣式指南,但 Google Python 檔案可能不會遵守本指南。詳情請參閱下文。
Python 版本
Fuchsia 會在結帳時提供自己的 Python 3 解譯器 (//scripts/fuchsia-vendored-python,目前為 Python 3.11 以上版本,截至 2026 年 8 月)。
Fuchsia 存放區中的所有可執行 Python 指令碼都必須以以下 shebang 行開頭:
#!/usr/bin/env fuchsia-vendored-python
分類標籤
我們對 Google Python 樣式指南進行的下列修正,主要是針對變體之間的選擇。舉例來說,如果風格指南允許您執行 A、B 或 C,我們可能會選擇偏好 B,並避免其他選項。
縮排
請勿與開頭分隔符號對齊。建議改用固定縮排 (4 個空格) 縮排。
(如需比較,請參閱 Google Python 樣式指南中的「縮排」)。
對帳單
即使使用 if 陳述式,也請避免建立單行陳述式。
Yes:
if foo:
bar(foo)
No:
if foo: bar(foo)
(如需比較,請參閱 Google Python 樣式指南中的「陳述式」)。
型別註解
強烈建議您為 Fuchsia 中所有新的 Python 程式碼新增型別註解。請按照《 Google Python 樣式指南》的規定,遵循新版 Python (3.11 以上版本) 的型別註解慣例:
- PEP 585 標準集合:直接使用內建集合型別,做為泛型型別提示 (
list[str]、dict[str, int]、set[Path]、tuple[int, ...])。請勿從typing匯入List、Dict、Set、Tuple。 - PEP 604 聯集語法:使用
|運算子表示聯集型別 (int | float、str | None)。請勿從typing匯入Union或Optional。
字串
字串請使用雙引號 (")。如果使用單引號可讓宣告更易於閱讀,則可使用單引號。舉例來說,'The cat said "Meow"' 比 "The cat said \\"Meow\\"" 更容易閱讀。
建議使用 f 字串 (f"...") 進行字串格式設定和插補,而非 % 格式設定或 .format()。維持 f 字串的雙引號。
(如需比較,請參閱 Google Python 樣式指南中的「字串」)。
保持一致
在較大的範圍內保持一致。避免在 Fuchsia 中顯示小範圍的一致性。只在單一檔案或目錄中保持一致,並非一致性。
在 third_party 中,意圖是遵循該專案或程式庫的現有樣式。視需要從該程式庫中尋找樣式指南。
(請參閱 Google Python 樣式指南中的結語)。