垂直网站建设规模,移动网站cms,今天的新闻直播,长春新建火车站文章目录 一、Black自动格式化工具二、格式化行为的核心内容1. 统一缩进和空格规则2. 括号换行#xff1a;一致的多行结构展开3. 字符串风格统一4. 函数/类定义中的空行规则5. import 排序#xff08;建议搭配 isort#xff09;6. 注释不动、换行优雅7. 可配置项极少#x… 文章目录 一、Black自动格式化工具二、格式化行为的核心内容1. 统一缩进和空格规则2. 括号换行一致的多行结构展开3. 字符串风格统一4. 函数/类定义中的空行规则5. import 排序建议搭配 isort6. 注释不动、换行优雅7. 可配置项极少强调“零配置”理念 三、安装四、使用方式1单文件 - 格式化black example.py修改原文件2多文件 - 格式化black .修改原文件3查看修改内容支持单/多文件black --diff不修改原文件4在VS Code中安装插件实时使用推荐 在线文本对比
✅ 一、自动执行Python代码规范的常用工具
工具名称功能类别说明Black代码格式化工具自动格式化Python代码主张“无配置就是最好的配置”风格一致性极强isortimport排序自动将import语句分组排序标准库、第三方库、本地模块保持整洁flake8代码风格检查基于PEP8规范检查命名、空格、缩进、未使用变量、重复定义、复杂度等pylint代码质量评估提供评分机制并报告冗余/危险代码适合用于静态代码分析和质量评估mypy静态类型检查对标PEP 484检查类型注解的正确性适合大型项目构建类型安全autopep8自动PEP8修复根据flake8风格检查自动修复但不如Black统一、现代
✅ 二、IDE集成建议VSCode等 若使用 VSCode、PyCharm 等IDE可集成以下工具
功能推荐插件设置位置自动格式化Black Formattersettings.json配置black为默认格式化器风格检查flake8可通过插件提示下划线标出错误import排序isort可结合保存时自动执行
一、Black自动格式化工具
Black 是 Python 社区广泛使用的自动格式化工具可以一键帮你格式化代码风格统一、无争议开发者只需专注业务逻辑不再纠结代码缩进、空格、换行风格等细节。
口号The Uncompromising Code Formatter —— 不可协商的代码风格所以不用做风格选择题
二、格式化行为的核心内容
1. 统一缩进和空格规则
使用4个空格缩进删除不必要的空格如 if(x 1) → if (x 1), 号后自动添加空格除非在函数参数中省略去除尾部空格保证每个文件结尾 只有一个空行
2. 括号换行一致的多行结构展开
在函数调用或定义参数较多、过长时自动使用“垂直风格”展开括号内容
# 原始写法
def foo(a, b, c, d): pass# 格式化后
def foo(a,b,c,d,
):pass这提升了 diff 稳定性减少多人协作时“只改一行却整组变了”的问题。
3. 字符串风格统一
默认使用 双引号 除非包含嵌套双引号才会用单引号
# 原始
s Hello# 格式化后
s Hello4. 函数/类定义中的空行规则
顶级函数或类定义之间留 2行类中方法之间留 1行
5. import 排序建议搭配 isort
Black 本身只对 import 保持分组但不负责排序顺序
# Black会这样组织
import os
import sysimport numpy as np
import torch⚠ 推荐 配合 isort 使用处理完整排序逻辑。
6. 注释不动、换行优雅
Black 不会修改注释内容但会适当调整注释的位置以匹配格式化后的结构
7. 可配置项极少强调“零配置”理念
Black 有意只保留极少的选项例如
三、安装
用pip直接安装pip install black需要 Python 3.9 及以上版本。
四、使用方式
1单文件 - 格式化black example.py修改原文件
假设你有一个叫 example.py 的 Python 脚本只需一行命令black example.py 它会直接修改原文件不会备份。
import cv2tif_path rD:\py\other\stig_x_0.007.tif # 不可以有中文
img cv2.imread(tif_path, cv2.IMREAD_UNCHANGED)
if img is None:raise SystemExit(f无法读取图像 {tif_path})# 显示图片
cv2. imshow(imgs, img)
cv2. waitKey(0)
cv2. destroyAllWindows()执行black D:\py\other\test.py后的运行结果如下
import cv2tif_path rD:\py\other\stig_x_0.007.tif # 不可以有中文
img cv2.imread(tif_path, cv2.IMREAD_UNCHANGED)
if img is None:raise SystemExit(f无法读取图像 {tif_path})# 显示图片
cv2.imshow(imgs, img)
cv2.waitKey(0)
cv2.destroyAllWindows()2多文件 - 格式化black .修改原文件
你也可以一次性格式化整个项目文件夹black . 其中 . 表示当前目录它会递归查找所有 .py 文件进行格式化。
3查看修改内容支持单/多文件black --diff不修改原文件
若希望一次检查多个文件避免误改生产代码推荐结合 Git 使用black . --check
import cv2tif_path rD:\py\other\stig_x_0.007.tif # 不可以有中文
img cv2.imread(tif_path, cv2.IMREAD_UNCHANGED)
if img is None:raise SystemExit(f无法读取图像 {tif_path})# 显示图片
cv2. imshow(imgs, img)
cv2.waitKey(0)
cv2.destroyAllWindows()执行black --diff D:\py\other\test.py后的运行结果如下
(py39) PS D:\py black --diff D:\py\other\test.py
--- D:\py\other\test.py 2025-06-17 09:20:21.66118600:00D:\py\other\test.py 2025-06-17 09:20:25.15921500:00-1,11 1,11 import cv2-tif_path rD:\py\other\stig_x_0.007.tif # 不可以有中文
-img cv2.imread(tif_path, cv2.IMREAD_UNCHANGED)
tif_path rD:\py\other\stig_x_0.007.tif # 不可以有中文
img cv2.imread(tif_path, cv2.IMREAD_UNCHANGED)if img is None:raise SystemExit(f无法读取图像 {tif_path})# 显示图片
-cv2. imshow(imgs, img)
-cv2. waitKey(0)
-cv2. destroyAllWindows()
\ No newline at end of file
cv2.imshow(imgs, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
would reformat D:\py\other\test.pyAll done! ✨ ✨
1 file would be reformatted.4在VS Code中安装插件实时使用推荐
打开VS Code设置中搜索Python Formatting Provider设为black 允许保存时自动格式化
// settings.json 配置
editor.formatOnSave: true,
python.formatting.provider: black这样每次按CtrlS保存时Black就会自动帮你格式化代码。