跳到内容

line-too-long (E501)

源自 pycodestyle linter。

作用

检查超出指定最大字符长度的行。

为什么这不好?

过长的行会影响可读性。例如,PEP 8 建议将行限制为 79 个字符。 默认情况下,此规则强制执行 88 个字符的限制,以与 Black 和 Ruff 格式化程序兼容,但可以通过 line-length 设置配置该限制。

出于实用主义的考虑,此规则在确定行是否过长时会做一些例外处理。 即,它

  1. 忽略仅由单个“单词”(即字符之间没有任何空格)组成的行。
  2. 忽略以 URL 结尾的行,只要 URL 在行长度阈值之前开始。
  3. 忽略以 pragma 注释结尾的行(例如,# type: ignore# noqa),只要 pragma 注释在行长度阈值之前开始。 也就是说,如果 pragma 注释导致行超过行长度,则该行不会被标记为过长。(此行为与 Ruff 格式化程序的行为一致。)
  4. 忽略 SPDX 许可证标识符和版权声明(例如,# SPDX-License-Identifier: MIT),它们是机器可读的,不应换行。

如果 lint.pycodestyle.ignore-overlong-task-commentstrue,则此规则还将忽略以任何指定的 lint.task-tags 开头的注释(例如,# TODO:)。

示例

my_function(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10)

建议改为

my_function(
    param1, param2, param3, param4, param5,
    param6, param7, param8, param9, param10
)

错误抑制

提示:在抑制多行字符串(如文档字符串)中的 E501 错误时,noqa 指令应位于字符串的末尾(在结束的三引号之后),并将应用于整个字符串,如下所示

"""Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
"""  # noqa: E501

Options (选项)