欢迎来到我的个人博客,有Python技术,自媒体,创业,APP开发问题随时讨论交流

black,一个超酷的 Python 库!

Python sitin 6个月前 (01-24) 215次浏览 已收录 0个评论
black,一个超酷的 Python 库!

大家好,今天为大家分享一个超酷的 Python 库 – black。

Github地址:https://github.com/psf/black


Python 是一种广泛使用的高级编程语言,其代码的可读性对于项目的维护和合作至关重要。为了确保 Python 代码的一致性和规范性,开发者们通常遵循一定的代码风格指南。然而,手动格式化代码往往耗费时间和精力。为了解决这个问题,有一个名为 “Black” 的工具应运而生。Black 是一款自动化代码格式化工具,它可以帮助开发者快速、一致地格式化 Python 代码,让代码风格变得整洁而一致。

本文将介绍 Python Black 工具,包括它的基本用法、高级功能和示例代码,以帮助大家更好地理解和使用这个强大的代码格式化工具。

什么是 Python Black?

Black(全称”Blackened”)是一个自动化的 Python 代码格式化工具,它的目标是实现 Python 代码的高度一致性和可读性,同时保持代码的简洁性。Black 的设计理念是”不要求开发者去做决定”,它会自动为您的代码做出格式化的决策,以确保最佳的代码风格。

Black 的主要特点

  • 自动化:Black 不需要手动配置或规则,它的默认设置已经足够适用于绝大多数 Python 项目。
  • 一致性:Black 会为所有代码文件应用相同的格式化规则,确保整个项目的代码风格一致。
  • 简洁性:Black 喜欢简洁的代码,它会删除不必要的空格、缩进和行尾空白,以减少代码文件的大小。
  • 高度可配置:虽然 Black 的默认配置适用于大多数项目,但它也允许开发者进行一些自定义设置,以满足特定需求。

安装和基本用法

要开始使用 Python Black,首先需要安装它。可以使用 pip 包管理器来安装 Black。

在终端或命令提示符中运行以下命令:

pip install black

安装完成后,可以使用 black 命令来格式化 Python 代码文件。

以下是基本用法示例:

# 格式化单个文件
black myfile.py

# 格式化整个目录
black myproject/

Black 将自动格式化指定文件或目录中的所有 Python 代码文件,使它们符合 Black 的默认格式规则。

示例和示范

为了更好地理解 Python Black 的功能和用法,通过一些示例来演示它的工作方式。

示例 1:格式化 Python 代码文件

假设有一个 Python 代码文件 mycode.py 包含以下内容:

def  add(a,b):
return a+b

通过运行以下命令,可以使用 Black 来格式化这个文件:

black mycode.py

运行后,mycode.py 的内容将变成:

def add(a, b):
    return a + b

Black 自动为函数名称、参数列表和运算符周围添加了适当的空格,并修复了缩进错误。

示例 2:格式化整个项目

如果想格式化整个 Python 项目,可以运行以下命令:

black myproject/

Black 将递归地格式化项目目录下的所有 Python 代码文件,确保整个项目的一致性和可读性。

示例 3:配置文件

虽然 Black 的默认配置适用于大多数项目,但也可以创建一个配置文件(pyproject.toml)来进行一些自定义设置。例如,可以配置 Black 忽略某些文件或文件夹,或者更改行长度限制。

以下是一个示例 pyproject.toml 配置文件:

[tool.black]
line-length = 88
exclude = '\.venv|_build|_static|_templates|node_modules'

在上述配置文件中,将行长度限制设置为 88 个字符,同时指定了需要在格式化时排除的文件或文件夹。

更多功能和选项

1. 自定义输出目标

使用 --diff 选项可以将格式化后的代码输出到终端而不覆盖源文件,这对于查看变化非常有用:

black --diff myfile.py

2. 检查模式

Black 还提供了一个检查模式,它可以检查代码是否符合 Black 的格式规则,但不会对代码进行实际格式化。这对于在代码提交之前进行代码审查非常有用。使用 --check-c 选项启用检查模式:

black --check myproject/

如果代码不符合 Black 的格式规则,将会显示格式错误的文件列表,但不会对它们进行格式化。

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 版本格式化代码。

例如,要为 Python 3.6 格式化代码,可以运行:

black --target-version py36 mycode.py

这将确保生成的代码与 Python 3.6 兼容。

5. 输出到文件

如果希望将格式化后的代码写入新文件而不是覆盖原始文件,可以使用 -o--output 选项,并指定输出文件的路径。

示例如下:

black -o formatted_code.py mycode.py

这将在当前目录中创建一个名为 formatted_code.py 的新文件,其中包含格式化后的代码。

6. 针对特定文件类型进行格式化

Black 可以格式化不仅是纯 Python 文件,还包括 Jupyter 笔记本 (.ipynb) 和 Django 模板 (.html) 等文件。只需将文件传递给 Black,它将自动检测文件类型并进行格式化。

例如:

black mynotebook.ipynb

这样,可以确保各种类型的文件都具有一致的代码风格。

7. 使用 pre-commit 钩子

Black 可以与 pre-commit 钩子一起使用,以便在每次提交代码时自动运行格式化。在项目中配置 pre-commit 钩子后,每次提交代码时,pre-commit 将自动运行 Black,并在需要时格式化代码。

要配置 pre-commit 钩子,首先确保已安装 pre-commit(pip install pre-commit),然后创建一个名为 .pre-commit-config.yaml 的文件,并添加以下内容:

-   repo: https://github.com/psf/black
    rev: stable
    hooks:
    -   id: black

然后运行以下命令来安装 pre-commit 钩子:

pre-commit install

现在,每次提交代码时,pre-commit 将自动运行 Black,确保代码始终保持一致的格式。

总结

Python Black 是一个强大的自动化代码格式化工具,可以帮助 Python 开发者提高代码的一致性和可读性,减少手动格式化的工作量。通过本文提供的示例和基本用法,可以快速上手并在自己的项目中使用 Black。无论是个人项目还是团队协作,Black 都是一个值得尝试的工具,可以提高 Python 代码的质量和可维护性。

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址