黑色:Python代码格式化工具指南 | AI生成和翻译

Home 2025.08

Black 是由 Python 软件基金会(PSF)开发的一款固执己见、毫不妥协的 Python 代码格式化工具。它能自动将 Python 代码重新格式化为一致的风格,主要基于 PEP 8 的严格子集,同时强调可读性、一致性以及在版本控制中保持最小的差异。通过使用 Black,开发者同意放弃对次要格式细节的控制,以换取代码审查期间的速度、确定性和减少关于风格的争论。Black 确保格式化后的代码在项目中看起来统一,从而为开发中更关键的方面节省时间和精力。它支持 Python 3.8 及更高版本,最新的稳定版本是 25.1.0(于 2025 年 1 月 29 日发布),该版本引入了 2025 稳定风格,包含诸如规范化的 Unicode 转义字符大小写和改进尾随逗号处理等增强功能。

Black 的哲学优先考虑:

由于其可靠性和集成能力,它被广泛用于开源和专业项目中。

安装

Black 可在 PyPI 上获取,可以使用 pip 安装。建议在虚拟环境中安装以实现项目隔离。

在 Arch Linux 上,您可以通过包管理器安装:pacman -S python-black

Black 也可以通过 conda 或其他包管理器安装。安装后,使用 black --version 进行验证。

对于开发或测试,您可以克隆 GitHub 仓库并以可编辑模式安装:

git clone https://github.com/psf/black.git
cd black
pip install -e .

用法

Black 主要是一个命令行工具。基本命令会原地格式化文件或目录:

black {源文件或目录}

如果以脚本方式运行 Black 不工作(例如,由于环境问题),请使用:

python -m black {源文件或目录}

主要命令行选项

Black 提供了各种标志用于自定义和控制。以下是主要选项的摘要:

示例

提示和注意事项

配置

Black 可以通过命令行标志或 pyproject.toml 文件(项目首选)进行配置。在 pyproject.toml 中的配置放在 [tool.black] 部分下。

使用 pyproject.toml

示例:

[tool.black]
line-length = 79
target-version = ['py311']
include = '\.pyi?$'
exclude = '''
/(
    \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist
)/
'''
skip-string-normalization = true

支持的选项与 CLI 标志相对应(例如,line-lengthskip-string-normalization)。多值选项如 target-version 使用数组。

优先级

文件发现与忽略

Black 自动发现目录中的 Python 文件,默认情况下遵循 .gitignore。使用 --include/--exclude 来自定义。它会忽略常见目录,如 .git.venv 等,除非被覆盖。

对于版本控制,可以与 pre-commit 等工具集成以强制执行格式化。

Black 代码风格

Black 强制执行一种特定的风格,配置选项有限。关键规则:

行长度

字符串

数字字面量

换行与运算符

尾随逗号

注释

缩进

空行

导入

其他规则

Black 旨在减少差异并提高可读性,更改主要是为了错误修复或新语法支持。

集成

Black 与编辑器和版本控制系统无缝集成,实现自动化格式化。

编辑器

版本控制

高级主题

对于故障排除,请查阅官方文档或 GitHub issues 上的 FAQ。

参考资料


Back Donate