大家好,今天为大家分享一个超酷的 Python 库 – black。 Github地址:https://github.com/psf/black Python 是一种广泛使用的高级编程语言,其代码的可读性对于项目的维护和合作至关重要。为了确保 Python 代码的一致性和规范性,开发者们通常遵循一定的代码风格指南。然而,手动格式化代码往往耗费时间和精力。为了解决这个问题,有一个名为 “Black” 的工具应运而生。Black 是一款自动化代码格式化工具,它可以帮助开发者快速、一致地格式化 Python 代码,让代码风格变得整洁而一致。 本文将介绍 Python Black 工具,包括它的基本用法、高级功能和示例代码,以帮助大家更好地理解和使用这个强大的代码格式化工具。 Black(全称”Blackened”)是一个自动化的 Python 代码格式化工具,它的目标是实现 Python 代码的高度一致性和可读性,同时保持代码的简洁性。Black 的设计理念是”不要求开发者去做决定”,它会自动为您的代码做出格式化的决策,以确保最佳的代码风格。 要开始使用 Python Black,首先需要安装它。可以使用 pip 包管理器来安装 Black。 在终端或命令提示符中运行以下命令: 安装完成后,可以使用 以下是基本用法示例: Black 将自动格式化指定文件或目录中的所有 Python 代码文件,使它们符合 Black 的默认格式规则。 为了更好地理解 Python Black 的功能和用法,通过一些示例来演示它的工作方式。 假设有一个 Python 代码文件 通过运行以下命令,可以使用 Black 来格式化这个文件: 运行后, Black 自动为函数名称、参数列表和运算符周围添加了适当的空格,并修复了缩进错误。 如果想格式化整个 Python 项目,可以运行以下命令: Black 将递归地格式化项目目录下的所有 Python 代码文件,确保整个项目的一致性和可读性。 虽然 Black 的默认配置适用于大多数项目,但也可以创建一个配置文件( 以下是一个示例 在上述配置文件中,将行长度限制设置为 88 个字符,同时指定了需要在格式化时排除的文件或文件夹。 使用 Black 还提供了一个检查模式,它可以检查代码是否符合 Black 的格式规则,但不会对代码进行实际格式化。这对于在代码提交之前进行代码审查非常有用。使用 如果代码不符合 Black 的格式规则,将会显示格式错误的文件列表,但不会对它们进行格式化。 可以创建一个 以下是一些配置选项的示例: 可以使用 例如,要为 Python 3.6 格式化代码,可以运行: 这将确保生成的代码与 Python 3.6 兼容。 如果希望将格式化后的代码写入新文件而不是覆盖原始文件,可以使用 示例如下: 这将在当前目录中创建一个名为 Black 可以格式化不仅是纯 Python 文件,还包括 Jupyter 笔记本 (.ipynb) 和 Django 模板 (.html) 等文件。只需将文件传递给 Black,它将自动检测文件类型并进行格式化。 例如: 这样,可以确保各种类型的文件都具有一致的代码风格。 Black 可以与 pre-commit 钩子一起使用,以便在每次提交代码时自动运行格式化。在项目中配置 pre-commit 钩子后,每次提交代码时,pre-commit 将自动运行 Black,并在需要时格式化代码。 要配置 pre-commit 钩子,首先确保已安装 pre-commit( 然后运行以下命令来安装 pre-commit 钩子: 现在,每次提交代码时,pre-commit 将自动运行 Black,确保代码始终保持一致的格式。 Python Black 是一个强大的自动化代码格式化工具,可以帮助 Python 开发者提高代码的一致性和可读性,减少手动格式化的工作量。通过本文提供的示例和基本用法,可以快速上手并在自己的项目中使用 Black。无论是个人项目还是团队协作,Black 都是一个值得尝试的工具,可以提高 Python 代码的质量和可维护性。
什么是 Python Black?
Black 的主要特点
安装和基本用法
pip install black
black
命令来格式化 Python 代码文件。# 格式化单个文件
black myfile.py
# 格式化整个目录
black myproject/
示例和示范
示例 1:格式化 Python 代码文件
mycode.py
包含以下内容:def add(a,b):
return a+b
black mycode.py
mycode.py
的内容将变成:def add(a, b):
return a + b
示例 2:格式化整个项目
black myproject/
示例 3:配置文件
pyproject.toml
)来进行一些自定义设置。例如,可以配置 Black 忽略某些文件或文件夹,或者更改行长度限制。pyproject.toml
配置文件:[tool.black]
line-length = 88
exclude = '\.venv|_build|_static|_templates|node_modules'
更多功能和选项
1. 自定义输出目标
--diff
选项可以将格式化后的代码输出到终端而不覆盖源文件,这对于查看变化非常有用:black --diff myfile.py
2. 检查模式
--check
或 -c
选项启用检查模式:black --check myproject/
3. 使用配置文件
pyproject.toml
配置文件来自定义 Black 的行为。[tool.black]
line-length = 88
exclude = '(\.venv|_build|_static|_templates|node_modules|\.git)'
target-version = ['py38']
line-length
:设置行长度限制,默认为 88 个字符。exclude
:指定需要在格式化时排除的文件或目录的正则表达式模式。target-version
:指定目标 Python 版本,以便 Black 知道应该使用哪些新特性和语法规则。4. 针对不同版本的 Python 代码进行格式化
-t
或 --target-version
选项指定要为哪个 Python 版本格式化代码。black --target-version py36 mycode.py
5. 输出到文件
-o
或 --output
选项,并指定输出文件的路径。black -o formatted_code.py mycode.py
formatted_code.py
的新文件,其中包含格式化后的代码。6. 针对特定文件类型进行格式化
black mynotebook.ipynb
7. 使用 pre-commit 钩子
pip install pre-commit
),然后创建一个名为 .pre-commit-config.yaml
的文件,并添加以下内容:- repo: https://github.com/psf/black
rev: stable
hooks:
- id: black
pre-commit install
总结
发表评论 取消回复