Fuchsia 项目遵循 Google Python 样式指南, 但进行了一些优化。
Google Python 样式指南允许更多变化(大概是为了涵盖大量现有来源)。本指南的选择范围更窄。因此,Fuchsia Python 文件也符合 Google 样式指南,但 Google Python 文件可能不符合本指南。如需了解详情,请参阅下方的优化 。
Python 版本
Fuchsia 在结账时提供自己的 Python 3 解释器 (//scripts/fuchsia-vendored-python,截至 2026 年 8 月,当前为 Python 3.11 或更高版本)。
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 样式指南中。)