news 2026/7/2 3:54:29

<span class=“js_title_inner“>有了这个库,妈妈再也不用担心我的代码格式了</span>

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
<span class=“js_title_inner“>有了这个库,妈妈再也不用担心我的代码格式了</span>

大家好,欢迎来到 Crossin 的编程教室。

如果你参与过团队开发,那么很可能遇到过这些尴尬场面:

  • 有人喜欢用单引号,有人坚持双引号

  • 有人缩进4个空格,有人非要用tab

  • 函数参数太多要不要换行?换几行?怎么对齐?

  • 列表、字典的元素末尾要不要加个逗号?

  • ……

以至于每次代码合入 master 前,都要花大量时间调整,最后 review 里一半评论都在讨论代码格式上。

今天介绍的这个工具:black,就是要为开发者省下这些时间。

设计哲学

Black 被称作“强硬的代码格式化工具”(The uncompromising code formatter)。

它的设计理念是:

我就是标准,就按我设定的来,不要把时间和注意力花在这些细节上。

Black 几乎不给你配置选项!

  • 想改行长?默认就是 88,别问为什么

  • 想用单引号?对不起,双引号才是正义

  • 想控制括号怎么折行?抱歉,我说了算

  • 甚至默认直接覆盖原文件

这种“偏执”保证了,经过 Black 格式化的同一份的代码,在你的电脑、我的电脑、服务器上都一模一样,连一个空格都不差。

主要规则

Black 对于代码的格式化规则主要包括:

  • 行长默认 88 个字符

  • 双引号 优先(除非字符串本身包含双引号)

  • 列表、元组、字典最后一个元素后面加逗号(方便 git diff)

  • 括号策略很“激进”:宁可多换行,也要让代码清晰

  • 切片、函数调用、链式调用都有固定展开规则

  • 文档字符串周围的空白会被清理干净

使用方法

要使用 Black 很简单,用 pip 命令就可以安装:

pip install black

最简单,也是用得最多的就是一条命令:格式化整个项目

black 文件/目录名

可以一次指定多个文件或目录:

black file1.py file2.py dir1 ...

其他常用参数:

检查有没有需要改动的文件,但不修改:--check

输出改动结果,但不修改源文件:--diff

设定一行最大宽度(默认 88):-l, --line-length

设定并行进程数量:-W, --workers

IDE 支持

几乎主流的 IDE 都有支持 Black 的插件或功能,比如 VS Code 的 Black Formatter,PyCharm 的 BlackConnect,Vim、Emacs、SublimeText 也都有成熟插件。安装之后,保存即格式化,而 Black 的格式化速度也很快,非常丝滑。

对于 Jupyter Notebook,Black 更是原生支持,直接 black xxx.ipynb 就可以进行格式化。

如今,包括 Django、FastAPI、HuggingFace、Pandas、Flask、HTTPX 在内的众多开源项目或商业产品都广泛采用 Black。

Black 的目的不在于帮你把代码整理得更好看,而是要帮你节省时间、减少内耗,不用纠结于格式细节,而把精力更多投入在代码本身之上。对于团队开发来说,也就是节省了成本。

对于代码格式化,你有什么要说的?欢迎评论区留言讨论。

如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~


添加微信crossin123,加入编程教室共同学习~

感谢转发点赞的各位~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 16:15:57

光刻胶用屏蔽剂

一、光刻胶对光屏蔽剂性能的具体详细要求光屏蔽剂的核心作用是控制光在光刻胶膜中的传播行为,其主要性能要求可归纳为以下几点:精确的光学特性(核心要求)在曝光波长下具有高吸收系数(α):这是最…

作者头像 李华
网站建设 2026/6/30 3:55:10

<span class=“js_title_inner“>1篇搞懂AI通识:大白话拆解核心点</span>

引言随着 AI 技术从实验室走向日常,“机器学习”“大模型”“Transformer”“MOE” 等词汇已不再是技术圈的专属。从智能聊天助手到电商推荐,从语音识别到自动驾驶,AI 正以多元形态融入生活。这篇文章按 “基础→核心→优化→落地→工具→术语…

作者头像 李华
网站建设 2026/7/2 0:18:51

which命令

which命令,查看所使用的一系列命令的程序文件存放在哪里语法:which要查找的命令find 用于查找指定的文件按文件名查找:find起始路径 -name"被查找文件名"支持通配符按文件大小查找:find 起始路径-size1-n[kMG]

作者头像 李华
网站建设 2026/7/2 1:43:52

<span class=“js_title_inner“>ZYNQ MPSOC VCU介绍</span>

1 什么是VCU?VCU 的全称是 Video Codec Unit,即视频编解码单元, Zynq UltraScale MPSoC 系列产品分为三种类型,分别是 CG 型器件、 EG 型器件和 EV 型器件, 其中只有 EV 型器件集成了 VCU。 VCU 适用于视频监控和网络视频连接应用…

作者头像 李华
网站建设 2026/7/1 17:30:14

企业级社区养老服务系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着人口老龄化进程的加快,社区养老服务需求日益增长,传统的养老服务模式已难以满足现代社会的需求。社区养老服务系统的数字化、智能化成为提升服务效率和质量的关键。企业级社区养老服务系统通过整合资源、优化管理流程,为老年人提供便…

作者头像 李华
网站建设 2026/7/1 13:51:34

企业级在线互动学习网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着信息技术的快速发展和教育模式的数字化转型,企业级在线互动学习平台成为提升员工培训效率和知识管理的重要工具。传统线下培训模式受限于时间和空间,难以满足现代企业灵活、高效的学习需求。在线学习系统通过实时互动、个性化课程推荐和数据分…

作者头像 李华