当前位置:首页 > 实用技巧 >

python保存代码(python编写的代码怎么保存)

来源:原点资讯(m.360kss.com)时间:2024-01-08 20:48:31作者:YD166手机阅读>>

python保存代码,python编写的代码怎么保存(1)

black是一款自动化的Python代码格式化工具,旨在通过强制一致的代码格式来提高代码的可读性和维护性。本文将深入探讨Black的使用方法、高级特性以及与其他格式化工具的比较,帮助你更好地理解并成功应用Black在你的项目中。

Black的背景Black的起源和发展历程

Black是由意大利程序员贾库伦·瑞科(Łukasz Langa)于2018年创建的一款开源Python代码格式化工具。他的初衷是通过强制一致的代码风格来提高代码的可读性,减少开发者之间关于代码格式的争论,从而使团队更容易协作。

在起初的几个版本中,Black受到了一些争议,因为它采用了一种非常严格的风格,例如使用单引号而不是双引号,以及强制行长限制等。然而,随着时间的推移,Black在社区中逐渐获得了认可,因为它的设计哲学更加注重一致性和简洁。

Black的基本格式化效果

一个简单的Python函数示例演示Black的基本格式化效果:

# 未格式化的代码 def add ( x, y ) : return x y

运行Black进行格式化:

black example.py

格式化后的代码:

# 格式化后的代码 def add(x, y): return x y

从这个简单的例子中可以看到,Black会自动调整缩进、添加适当的空格,使代码更加一致和易读。

安装与配置1. 安装Black

首先,需要使用pip安装Black。在终端或命令提示符中执行以下命令:

pip install black

这将会安装最新版本的Black。

2. 创建配置文件

为了定制Black的行为,可以创建一个名为pyproject.toml的配置文件。在项目根目录下执行以下命令:

touch pyproject.toml 3. 基本配置选项

在pyproject.toml中,可以配置Black的一些基本选项,例如行宽度(line-length)和目标Python版本(target-version)。

# pyproject.toml [tool.black] line-length = 88 target-version = ['py38']

在这个示例中,将行宽度设置为88个字符,并指定目标Python版本为3.8。可以根据项目需求进行相应的调整。

4. 更多配置选项

除了基本选项之外,Black还提供了许多其他配置选项,以满足不同项目的需求。以下是一些示例:

exclude: 用于指定要忽略的文件或目录。例如:

# pyproject.toml [tool.black] exclude = ''' /tests/ /docs/ '''

skip-string-normalization: 如果不希望对字符串进行规范化,可以使用此选项。例如:

# pyproject.toml [tool.black] skip-string-normalization = true

use-tabs: 如果项目使用制表符而不是空格,请启用此选项。例如:

# pyproject.toml [tool.black] use-tabs = true 5. 运行Black

配置完成后,可以在终端中运行Black,以格式化项目中的所有符合条件的Python文件。

black .

以上示例展示了如何安装Black并配置一些基本选项。通过在pyproject.toml文件中添加适当的配置,可以根据项目的需求定制Black的行为。

基本用法

Black的基本用法非常简单,只需在终端或命令行中运行Black,并指定要格式化的目标文件或目录。

1. 安装Black

首先,确保已经安装了Black。如果没有安装,可以使用以下命令进行安装:

pip install black 2. 运行Black

在终端中,进入项目目录,并运行以下命令:

black .

这个命令将会格式化当前目录下的所有符合条件的Python文件。也可以指定具体的文件或目录,例如:

black my_file.py my_directory/ 3. 自动递归

默认情况下,Black会递归地格式化目录下的所有文件。如果想要显示哪些文件被格式化了,可以加上--check选项,Black将只检查格式而不进行实际的修改。

black --check . 4. 检查格式差异

如果想查看格式化前后的具体差异,可以使用--diff选项:

black --diff .

这个选项会显示格式化前后的差异,但并不会实际修改文件。

5. 在编辑器中使用

许多代码编辑器都支持Black的集成,使得在编辑器中直接应用格式化变得更加方便。例如,在VSCode中,可以安装插件并配置以在保存文件时自动运行Black。

Black的特性

Black作为一款强大的Python代码格式化工具,不仅提供了基本的格式化功能,还支持一些高级特性,使其更加灵活和适应不同的项目需求。

1. 忽略文件和目录

Black允许你通过配置文件来指定要忽略的文件或目录,以便在格式化时排除特定的部分。在pyproject.toml中使用exclude选项:

# pyproject.toml [tool.black] exclude = ''' /tests/ /docs/ '''

在这个例子中,Black将忽略项目中的/tests/和/docs/目录下的文件。

2. 自定义行宽和缩进

通过配置文件,你可以轻松地调整Black的一些格式化设置,如行宽度和缩进。例如,将行宽度设置为120,使用制表符而不是空格:

# pyproject.toml [tool.black] line-length = 120 use-tabs = true

这个配置将使Black在格式化时将行宽度限制为120个字符,并使用制表符进行缩进。

3. 编辑器集成

Black与许多流行的代码编辑器集成得很好。在许多编辑器中,你可以通过配置使Black在保存文件时自动运行。以VSCode为例,在settings.json文件中添加以下配置:

// settings.json "editor.formatOnSave": true, "python.formatting.provider": "black"

这样配置后,每次保存Python文件时,Black都会自动格式化代码。

4. 额外的命令行选项

除了配置文件之外,Black还提供了一些命令行选项,允许你在运行时覆盖特定的设置。例如,你可以使用--check选项来检查代码是否符合Black的格式,而不进行实际的格式化。

black --check . 5. 在版本控制中使用

Black的格式化输出通常会修改文件,因此在版本控制中使用时需要小心。你可以使用--diff选项来查看格式化前后的差异,而不实际修改文件:

black --diff .

这能够在提交代码之前检查潜在的更改。

通过深入了解Black的高级特性,你可以更好地定制工具以适应你的项目需求。这些特性使Black成为一个强大而灵活的代码格式化工具,适用于各种Python项目。

Black与其他格式化工具的比较

Black、YAPF和autopep8都是Python代码格式化工具,它们各自有着独特的设计理念和特点。以下是它们之间的一些比较:

1.设计理念
  • Black: Black的设计理念强调一致性和简洁。它采用了一种“不容商量”的方式,通过强制一种固定的代码风格来减少开发者之间的争论,确保整个项目的代码具有一致性。
  • YAPF: YAPF(Yet Another Python Formatter)也注重一致性,但相对于Black,它提供了更多的配置选项,允许用户根据自己的偏好调整格式化的细节。
  • autopep8: autopep8的目标是自动修复PEP 8规范中的问题。它侧重于通过调整空格、缩进等方式来使代码符合PEP 8标准,但并不强制一种特定的风格。
2.配置选项
  • Black: Black的配置选项相对较少。它更倾向于采用一组默认的风格规则,以简化配置,并鼓励项目中所有的代码都采用相同的风格。
  • YAPF: YAPF提供了大量的配置选项,使用户可以精细调整格式化的行为。这使得YAPF更加适用于那些需要高度定制的项目。
  • autopep8: autopep8也提供了一些配置选项,允许用户在一定程度上调整格式化规则,但相较于YAPF,它的配置相对简单。
3.自动化程度
  • Black: Black的自动化程度非常高。它几乎没有人为干预的余地,通过运行一次命令即可完成整个项目的代码格式化。
  • YAPF: YAPF在自动化程度上也很高,但相对于Black,它提供了更多的配置选项,使用户可以更灵活地调整代码风格。
  • autopep8: autopep8的自动化程度较高,但用户在使用时仍有一定的控制权,可以选择性地应用或忽略某些修复。
4.速度
  • Black: Black在速度上通常较快,尤其是对于大型项目。它通过强制一致的规则来提高处理速度。
  • YAPF: YAPF的速度也较快,但由于提供了更多的配置选项,可能在处理复杂格式时稍显耗时。
  • autopep8: autopep8通常也能够快速处理格式化,但在处理复杂代码时可能略显缓慢。
5.社区支持与活跃度
  • Black: Black在Python社区中逐渐获得了广泛的认可,得到了许多项目的采用,并且其开发仍然非常活跃。
  • YAPF: YAPF同样受到了较多项目的青睐,具有一定的社区支持和活跃度。
  • autopep8: autopep8作为一个解决PEP 8规范的工具,也得到了广泛的应用,但在一些新项目中可能受到Black和YAPF的竞争。
总结

Black作为一款Python代码格式化工具,在项目中有其独特的优势。其设计理念注重一致性和简洁,通过强制一种规范的代码风格,减少了开发者间的争议,提高了整体代码的可读性。Black的自动化程度极高,简单的命令即可完成整个项目的代码格式化,使得团队能够更轻松地维持一致的代码规范。

相较于其他格式化工具如YAPF和autopep8,Black在速度上表现出色,特别适合处理大型项目。尽管配置选项相对较少,但这也有助于项目内部的一致性。Black在Python社区中得到广泛认可,越来越多的项目采用它作为首选格式化工具。然而,对于一些需要更多定制选项的项目,YAPF和autopep8可能更为适用。

在选择格式化工具时,团队应权衡工具的自动化程度、灵活性以及与项目需求的契合度。Black的简洁和高效使其成为许多团队的选择,为项目提供了一致的、易读的代码风格。

栏目热文

python编写后怎么保存(python写了怎样保存)

python编写后怎么保存(python写了怎样保存)

一篇文章写清楚一个问题,关注我,自学Python!今天用一个实例给大家写写在机器学习中如何将训练好的模型储存起来方便下次...

2024-01-08 21:13:56查看全文 >>

python消息轰炸代码(消息轰炸代码vbs)

python消息轰炸代码(消息轰炸代码vbs)

安装PyAutoGUIpip install pyautoguiPyAutoGUI具有以下功能:移动鼠标,然后单击在其他...

2024-01-08 21:07:13查看全文 >>

python编写完怎么保存(python编写通讯录程序)

python编写完怎么保存(python编写通讯录程序)

上篇文章小编已经给大家介绍了Pycharm如何输出“hello world”,这篇文章小编将继续分享Pycharm的创...

2024-01-08 20:56:30查看全文 >>

python保存的代码怎么找(python保存下来的代码怎么运行)

python保存的代码怎么找(python保存下来的代码怎么运行)

前言之所以写这篇文章,源自于我遇到的一个问题:python 中我们可以通过 exec 执行一段字符串构成的代码:可以看到...

2024-01-08 20:55:21查看全文 >>

python怎么把代码保存为一个文件(python怎么将代码存入一个文件中)

python怎么把代码保存为一个文件(python怎么将代码存入一个文件中)

转载说明:原创不易,未经授权,谢绝任何形式的转载Midjourney 创作,彩色的代码字节流将视频转录为文本稿件可能是一...

2024-01-08 21:11:27查看全文 >>

python写代码换行(python换行写代码)

python写代码换行(python换行写代码)

Python中字符串太长而需要换行的话可以使用下面这种传统的方法:Python2s = 'aaa' \ ...

2024-01-08 20:39:21查看全文 >>

python怎么保存程序(python中怎么保存代码)

python怎么保存程序(python中怎么保存代码)

Python中保存文件是一项非常基本的任务,它允许我们将程序输出保存到磁盘上,以便以后使用或与他人共享。本文将介绍如何在...

2024-01-08 20:33:56查看全文 >>

vivonex手机红外线开启(vivonex红外怎么打开)

vivonex手机红外线开启(vivonex红外怎么打开)

Vivo手机通常不具备直接掌控空调的内置功能,但以下方法可使你通过Vivo手机来操控空调:1. 利用空调制造商的官方应用...

2024-01-08 20:35:23查看全文 >>

vivonex手机红外在什么地方(vivo nex的红外感应器在哪里用)

vivonex手机红外在什么地方(vivo nex的红外感应器在哪里用)

【手机中国新闻】作为国产大厂的vivo,在新技术的研发和应用方面一直走在国际前列。无论是屏幕指纹技术还是升降式摄像头,v...

2024-01-08 20:36:11查看全文 >>

vivonex手机支持红外遥控吗(vivonex红外线感应在哪里)

vivonex手机支持红外遥控吗(vivonex红外线感应在哪里)

大家好,这里是"爱电子产品",本次带来的是Vivo nex手机的观感。Vivo nex手机配置和价格采用高通骁龙845处...

2024-01-08 21:14:31查看全文 >>

文档排行