跳到内容

doc-line-too-long (W505)

源自 pycodestyle linter。

作用

检查文档行的长度是否超过指定的最大字符长度。

为什么这不好?

对于大段的文本(文档字符串或注释),过长的行会影响可读性。例如,PEP 8 建议将此类行限制为 72 个字符,而此规则强制执行由 lint.pycodestyle.max-doc-length 设置指定的限制。(如果未提供值,即使将其添加到 --select 列表中,也会忽略此规则。)

在此规则的上下文中,“文档行”定义为由独立注释或独立字符串(如文档字符串)组成的行。

为了实用起见,此规则在确定一行是否过长时会做一些例外处理。即它:

  1. 忽略由单个“单词”组成的行(即,字符之间没有任何空格)。
  2. 忽略以 URL 结尾的行,只要 URL 在行长度阈值之前开始。
  3. 忽略以 pragma 注释结尾的行(例如,# type: ignore# noqa),只要 pragma 注释在线长度阈值之前开始。也就是说,如果 pragma 注释导致它超过行长度,则该行不会被标记为过长。(此行为与 Ruff 格式化程序的行为一致。)

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

示例

def function(x):
    """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis auctor purus ut ex fermentum, at maximus est hendrerit."""

建议改为

def function(x):
    """
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    Duis auctor purus ut ex fermentum, at maximus est hendrerit.
    """

错误抑制

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

"""Lorem ipsum dolor sit amet.

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

Options (选项)