首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 1章 处理错误和寻求帮助
1.1 如何理解Python错误信息
1.1.1 检查回溯信息
1.1.2 搜索错误信息
1.2 借助linter 避免错误
1.3 如何寻求编程帮助
1.3.1 预先提供信息以避免反复补充
1.3.2 以实际问题的形式陈述问题
1.3.3 在合适的网站上提出你的问题
1.3.4 在标题中概述你的问题
1.3.5 说明代码的预期目的
1.3.6 包含完整的错误信息
1.3.7 分享全部代码
1.3.8 通过适当的格式化增强代码可读性
1.3.9 告诉帮忙者已经尝试过的方法
1.3.10 描述你的设置信息
第 2章 环境设置和命令行
2.1 文件系统
2.1.1 Python中的路径
2.1.2 主目录
2.1.3 当前工作目录
2.1.4 绝对路径和相对路径
2.2 程序和进程
2.3 命令行
2.3.1 打开终端窗口
2.3.2 使用命令行运行程序
2.3.3 使用命令行参数
2.3.4 在命令行中使用-c 运行Python代码
2.3.5 从命令行运行Python 程序
2.3.6 运行py.exe 程序
2.3.7 在Python 程序中运行命令
2.3.8 使用Tab 补全命令减少输入量
2.3.9 查看历史命令
2.3.10 使用常用命令
2.4 环境变量和PATH
2.4.1 查看环境变量
2.4.2 使用PATH 环境变量
2.4.3 更改命令行的PATH 环境变量
2.4.4 在Windows 上将文件夹永久添加到PATH
2.4.5 在macOS 和Linux 上将文件夹永久添加到PATH
2.5 不借助命令行运行Python 程序
2.5.1 在Windows 上运行Python程序
2.5.2 在macOS 上运行Python 程序
2.5.3 在Ubuntu Linux 上运行Python程序
第3章 使用Black 进行代码格式化
3.1 让程序员招人烦的错误做法
3.2 风格指南和PEP 8
3.3 水平间距
3.3.1 使用空格进行缩进
3.3.2 行内间距
3.4 垂直间距
3.4.1 垂直间距示例
3.4.2 垂直间距的最佳实践
3.5 Black:毫不妥协的代码格式化工具
3.5.1 安装Black
3.5.2 在命令行中运行Black
3.5.3 对部分代码禁用Black
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(一)
小册名称:Python编程轻松进阶(一)
### 3.5.3 对部分代码禁用Black 在Python编程的世界里,代码风格的一致性是提高代码可读性和可维护性的关键。为此,自动格式化工具如Black应运而生,它以“不妥协”的态度自动调整代码风格,确保整个项目的代码风格统一。然而,在实际开发中,有时我们可能需要在保持项目整体风格一致的同时,对某些特定部分的代码禁用Black的格式化,以满足特定的编码需求、保留特定的注释风格或是兼容第三方库的要求。本章节将深入探讨如何在Python项目中对部分代码禁用Black的自动格式化。 #### 1. 理解Black的默认行为 首先,了解Black的默认行为是至关重要的。Black是一个“意见化”的格式化工具,意味着它有一套固定的格式化规则,并且不接受用户自定义的配置(除了行宽之外)。这意味着一旦运行Black,它会根据预设的规则格式化整个文件,不留任何手动调整的空间。因此,想要对部分代码禁用Black,通常不能直接通过Black的配置选项实现,而需要采取一些间接的方法。 #### 2. 使用字符串格式化技巧 一种常见的避免Black格式化特定代码片段的方法是使用字符串字面量(如三引号字符串)来包含那些不希望被格式化的代码。虽然这种方法主要用于保存大段的格式化文本(如SQL查询、HTML模板等),但在某些情况下,也可以巧妙地用来“保护”一小段代码不被格式化。然而,这种方法并不适用于大多数编程逻辑代码,因为它会将这些代码作为字符串处理,导致运行时错误。 #### 3. 使用`# fmt: off`和`# fmt: on`标记 从Black 19.10b0版本开始,Black支持了通过特定的注释标记来临时禁用和重新启用格式化。这是最直接、也是最推荐的方法来避免对部分代码进行格式化。 - `# fmt: off`:在文件或代码块的开始处添加此注释,以禁用Black对该注释之后直到下一个`# fmt: on`注释之间的代码进行格式化。 - `# fmt: on`:恢复Black的格式化功能,通常紧跟在`# fmt: off`之后的一个或多个代码块之后。 **示例**: ```python # fmt: off # 这里的代码不会被Black格式化 def my_special_function(): # 保留的缩进、空格或特殊格式 print("Hello, ") print("world!") # fmt: on # 接下来的代码会按照Black的规则进行格式化 def another_function(): print("This will be formatted by Black.") ``` 这种方法特别适用于那些需要保持特定格式(如对齐、特定空格使用等)的复杂代码块,或者当代码需要兼容旧的、特定的编码风格时。 #### 4. 分离文件 如果项目中存在大量需要特殊处理的代码,并且这些代码逻辑上相对独立,那么将这些代码分离到单独的文件中,并在项目配置中指定不对这些文件应用Black格式化,也是一种可行的解决方案。这通常通过在项目的`.gitignore`、`pre-commit`钩子或其他CI/CD配置中排除这些文件来实现。 #### 5. 使用第三方工具或插件 虽然Black本身不支持复杂的条件格式化,但社区中可能已经存在一些第三方工具或插件,它们能够提供更灵活的格式化选项,包括基于特定规则或注释来禁用格式化。这些工具可能不是直接集成到Black中,但可以作为项目构建或代码审查流程的一部分来使用。 #### 6. 注意事项 - **维护性**:虽然禁用Black对某些代码片段的格式化可以提高灵活性,但也可能导致代码风格不一致,进而影响代码的可读性和可维护性。因此,在决定禁用格式化之前,应仔细权衡利弊。 - **团队协作**:在团队协作的项目中,确保所有团队成员都了解哪些代码被禁用了格式化,以及为什么这样做,是非常重要的。这可以通过代码注释、文档或团队沟通来实现。 - **版本兼容性**:随着Black和其他相关工具的不断更新,一些旧的解决方案可能不再适用。因此,定期检查和更新项目中的格式化策略是必要的。 #### 结论 在Python项目中,对部分代码禁用Black的格式化是一个复杂但必要的需求,特别是在处理特殊编码风格、兼容第三方库或保留重要注释时。通过使用`# fmt: off`和`# fmt: on`注释、分离文件、使用第三方工具等方法,我们可以灵活地在保持项目整体风格一致性的同时,满足特定的编码需求。然而,在采取这些措施时,我们也应考虑到它们对代码可维护性和团队协作的潜在影响。
上一篇:
3.5.2 在命令行中运行Black
该分类下的相关小册推荐:
Python合辑13-面向对象编程案例(上)
Python合辑10-函数
Python3网络爬虫开发实战(下)
Python合辑1-Python语言基础
Python面试指南
Python数据分析与挖掘实战(上)
Python合辑5-格式化字符串
Python合辑8-变量和运算符
Python爬虫入门与实战开发(上)
Python合辑12-面向对象
Python合辑2-字符串常用方法
Python合辑6-字典专题