防止字符串列表中字符串串联的编写风格

Shi*_*iva 7 python code-structure

假设我有一个字符串列表/元组,

COLOURS = [
    "White",
    "Black",
    "Red"
    "Green",
    "Blue"
]

for c in COLOURS:
    # rest of the code
Run Code Online (Sandbox Code Playgroud)

有时我忘记在列表中的每个条目后面放置逗号("Red"在上面的代码片段中)。这会产生一个"RedGreen"而不是两个单独的"Red"列表"Green"项。

由于这是有效的 Python,因此没有 IDE/文本编辑器显示警告/错误。错误的值仅在测试过程中才会引起注意。

我应该使用什么写作风格或代码结构来防止这种情况?

wja*_*rea 3

您错误地认为“没有 IDE/文本编辑器显示警告/错误”。Pylint可以使用带有标志check-str-concat-over-line-jumps 的规则implicit-str-concat (W1404)来识别此问题。(就此而言,有很多东西是有效的 Python,linter 会警告你,例如bare。except:

\n

就我个人而言,我使用的是 VSCode,因此我通过 Python 扩展 ( python.linting.pylintEnabled) 启用了 Pylint 并设置了如下pylintrc :

\n
[tool.pylint]\ncheck-str-concat-over-line-jumps = yes\n
Run Code Online (Sandbox Code Playgroud)\n

现在 VSCode 会针对您的列表发出以下警告:

\n
\n

在列表\xc2\xa0 pylint(implicit-str-concat)\xc2\xa0 [Ln 4, Col 1]中找到隐式字符串连接

\n
\n
\n

最后,可能还有其他 linter 可以找到相同的问题,但 Pylint 是我发现的第一个。

\n