如何使用Black自动格式化Python
编写python代码是一回事,以良好的格式编写代码是另一回事。大部分时间,尤其是初级编码人员/程序员,通常专注于确保代码正常工作,而忘记格式化其代码。
如果您编写一个小型程序(包含行代码),则无需格式化代码就可以逃脱现实,但是随着程序变得越来越复杂,它们将变得越来越难以理解,并且有时(大约15,行代码),很难理解您自己编写的代码。
处理格式正确的代码与处理格式错误的代码之间的区别就像住在宫殿和脏房子里的区别。
为什么格式化python代码很重要?
1.可读性
格式化代码将有助于有效地读取代码。它看起来更有条理,当有人查看您的代码时,这也将有助于给您一个良好的印象。
2..帮助您进行编码面试
即使在进行编码采访时,有时如果您为代码提供正确的格式,访问者也会注意。如果您忘记进行格式化,则可能会因为这个原因而失业。
3.团队支持
当团队中有几个人在同一个软件项目中工作并且您的队友必须理解您编写的代码时,格式化代码的格式变得尤为重要。
4.易于发现错误
格式不正确的代码可能真的很难发现错误,甚至无法在程序上工作,而且看起来也很恐怖。对您而言是冒犯。
大多数Python开发人员喜欢使用Pylint或Flake8来检查其代码中的错误和样式指南。
Pylint是一种工具,用于检查python编程语言中的错误,它会尝试实施编码标准并查找代码气味。它还可以查找某些类型错误,可以建议有关如何重构特定块的建议,并可以为您提供有关代码复杂性的详细信息。
介绍Black
使用Black,即表示您同意放弃对手工格式化细节的控制。作为回报,布莱克为您提供速度,确定性和免于pycodestyle烦恼格式化的自由。您将为更重要的事情节省时间和精力。
Black可以根据Black代码样式重新格式化您的整个文件。它可以帮助您的大脑专注于要解决的问题并编写解决方案,而不必因代码结构和较小的样式差异而分心。
安装
可以通过运行pipinstallblack来安装Black。它需要Python3.6.0+才能运行。安装Black后,您将在Shell中使用一个名为black的新命令行工具,可以开始使用了!
要立即开始使用明智的默认设置,请选择要格式化的python文件,然后在终端中写入blackfilename.py,然后将格式化您的python文件。
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架格式化单个文件
让我们来看一个简单的示例,这是我的Python文件中名为sample_code.py的两个python函数。
Flake8是一个Python库,其中包装了PyFlakes,pycodestyle和NedBatchelder的McCabe脚本。这是一个很棒的工具包,用于根据代码风格(PEP8),编程错误(例如“库已导入但未使用”,“未定义名称”和未缩进的代码)检查您的代码库。
问题在于这些工具仅报告它们在源代码中识别出的问题,而让Python开发人员去解决它们。但是,如果我们拥有可以同时识别和解决问题的工具,该怎么办?Black是您发现错误并同时设置python代码格式并提高工作效率的正确工具。
然后,您可以在终端中使用Blacksample_code.py更改格式。
然后,您可以打开sample_code.py查看格式化的python代码。
Python程式码现已格式化,可读性更强。
要格式化多个python文件,请在终端中写入blackfolder_name/。
重新格式化了名为python_with_black的文件夹中的三个python文件。
检查文件以进行格式化
如果您不希望Black更改文件,但是想知道Black是否认为应该更改文件,则可以使用以下命令之一:
Black--check。这将检查可以在当前文件夹中格式化哪些python文件,但实际上并未修改python文件。
Black--check--difffile_name.py这显示了需要对文件执行的操作,但不修改文件。
更改每行字符数
请注意,行长默认为88个字符,但是您可以使用“-l”或“--line-length”选项更改它。
将示例更改为60个字符black-l60python_file.py。
Jupyter笔记本中的Black
对于Jupyter笔记本电脑用户,您仍然可以使用名为JupyterBlack的简单扩展名自动格式化python代码。此扩展名用黑色重新格式化/美化笔记本计算机代码单元中的代码。
JupyterBlack扩展程序提供工具栏按钮。
用于重新格式化当前代码单元的键盘快捷键(默认值:Ctrl-B)。
用于重新格式化整个代码单元的键盘快捷键(默认值:Ctrl-Shift-B)。
安装JupyterBlack
首先,请确保您已经安装了jupyter-contrib-nbextensions和black,然后运行以下命令。
jupyternbextensioninstall