如何阻止Black为链式代码添加括号?涉及哪些规则?
解决Black自动给链式调用添加括号换行的问题
阻止该行为的两种方法
- 调整行长度限制:Black默认以88字符作为行长度上限,当你的链式调用代码总长度超过这个值时,就会触发加括号换行的逻辑。你可以在项目的
pyproject.toml配置文件里增大这个阈值,比如:
只要代码行长度不超过设定值,Black就会保留原有单行格式。[tool.black] line-length = 120 - 跳过指定代码的格式化:如果不想调整全局配置,直接在目标代码行末尾加上
# fmt: skip注释,强制Black不修改这段代码的格式:longfunc(long_arg1, long_arg2...).longfunct().longfunct().longfunct() # fmt: skip
触发该行为的规则
这个格式化行为是Black默认的长行链式调用处理逻辑:当链式调用的整体长度超过配置的line-length阈值时,Black会自动将整个调用包裹在括号内并拆分每行一个方法调用,以此保证代码行长度符合要求,提升可读性。这是Black核心格式化规则的一部分,没有单独的开关控制该行为,只能通过上述两种方式规避。
内容的提问来源于stack exchange,提问作者Irina
相关产品推荐
相关产品推荐

