【天天热闻】最火的 Python 代码格式化工具 Black

2023-06-08 11:43:27 个人图书馆-汉无为

背景


(相关资料图)

前段时间看了一下 MySQL 官方的开源项目,发现它点名了要用"Block" 来格式化代码;难不成这货比 autopep8 还要出众?以下是 MySQL 官方的原文,于是我真的去试用了一下 Black 发现真香!

安装

Black 是一个 Python 的软件包,并且已经发布到了 pypi ,也就是说我们可以直接通过 pip 来安装它。

pip3installblack

安装完成之后我们可以得到一个叫black 的命令。

Black 的哲学

black 项目的开发人员已经把 pep8(Python 官方在这个 pep 里定义了 Python 代码的推荐风格)深刻理解了;black 会以 pep8 为蓝本来校验我们的代码,一旦发现与标准不一定的地方就直接把代码改成一致。

正是由于它这种直接改我源代码的处事风格,让我节约了不少时间。也就是说开发人员无法选择是否接受 black 的风格改进,这就有了另一个好处,那就是有了一个天然的、统一的标准,这样所有人的代码风格都是一致的。

来一个最小化的例子感受一下。

print("helloworld");

以一个被 back 教育过多次的人来说,这一行代码有两处风格与 black 冲突;1. 它用了单引号 2. 不应该有分号。对于这种短小的代码,我们可以直接传递给 black 处理就像下面这样。

echo "print("hello world");" | black -print("hello world")reformatted-All done! ✨ ✨1 file reformatted.

我敢保证上面这个是 black 最没用的例子了,因为在真正的项目里面我们有更加好的使用方法。

手工格式化

打个比方,我想要格式化的 Python 代码位于 dbm-agent 项目的 dbma 目录下,那我就可以这样一行命令完成它的格式化。

cddbm-agentblack dbmareformatted /data/repos/dbm-agent/dbma/components/mysql/views/handlers.pyreformatted /data/repos/dbm-agent/dbma/components/mysql/views/defaultsview.pyAll done! ✨  ✨2 files reformatted, 34 files left unchanged.

可以看到 dbma 目录下有两个文件与 black 的风格有冲突,都被它格式化了。虽然这个已经比较方便了,但是这种重复劳动最好还是让 IDE 来做。

VSCode自动格式化

我们可以让 vscode 在保存文件的时候,先格式化后再保存。这样我们只要配置一次,就能完全解决代码风格问题。

1. 打开 format-on-save 。

2. 指定 Python 代码的格式化器为 black 。

就是这么简单,现在 vscode 已经能自己用 black 帮我们格式化代码了。

Black是名门之后

一开始我想 black 应该也就是一个普普通通的项目吧,没有想到它的背书这么硬!它来自于 《Python Software Foundation》这个基金会就是开发 requests 项目的那个基金会。

最后

都到这里了,是时候图穷匕见了!我这人比较 real 就直说了,我想涨粉帮忙点下关注!我的技术文章质量还可以,关注应该不亏。

另外 “在看” +“分享” +“点赞”+“收藏”也是我继续写下去的动力;再次感谢!!!

上一篇 : .NET周报 【6月第1期 2023-06-04】

下一篇 : 最后一页

x

相关推荐

精彩推送