doc-line-too-long (W505)
源自 pycodestyle linter。
作用
检查文档行的长度是否超过指定的最大字符长度。
为什么这不好?
对于大段的文本(文档字符串或注释),过长的行会影响可读性。例如,PEP 8 建议将此类行限制为 72 个字符,而此规则强制执行由 lint.pycodestyle.max-doc-length
设置指定的限制。(如果未提供值,即使将其添加到 --select
列表中,也会忽略此规则。)
在此规则的上下文中,“文档行”定义为由独立注释或独立字符串(如文档字符串)组成的行。
为了实用起见,此规则在确定一行是否过长时会做一些例外处理。即它:
- 忽略由单个“单词”组成的行(即,字符之间没有任何空格)。
- 忽略以 URL 结尾的行,只要 URL 在行长度阈值之前开始。
- 忽略以 pragma 注释结尾的行(例如,
# type: ignore
或# noqa
),只要 pragma 注释在线长度阈值之前开始。也就是说,如果 pragma 注释导致它超过行长度,则该行不会被标记为过长。(此行为与 Ruff 格式化程序的行为一致。)
如果 lint.pycodestyle.ignore-overlong-task-comments
为 true
,则此规则还将忽略以任何指定的 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