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

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

for c in COLOURS:
    # rest of the code

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

由于这是有效的Python,因此没有任何IDE/文本编辑器显示警告/错误.不正确的值仅在测试期间出现在聚光灯下.

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

推荐答案

"没有IDE/文本编辑器显示警告/错误"的说法是不正确的.Pylint可以使用具有标志check-str-concat-over-line-jumps的规则implicit-str-concat (W1404)来识别该问题.(在这一点上,有很多东西是有效的Python,Linter会警告你,比如bare except:.)

就我个人而言,我使用的是VSCode,所以我通过Python扩展(python.linting.pylintEnabled)和set up a pylintrc启用了Pylint,如下所示:

[tool.pylint]
check-str-concat-over-line-jumps = yes

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

Implicit string concatenation found in list%PYLINT(IMPLICIT-STR-CONCAT)[Ln 4,Col 1]


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

Python相关问答推荐

使文本输入中的文本与标签中的文本相同

从管道将Python应用程序部署到Azure Web应用程序,不包括需求包

覆盖Django rest响应,仅返回PK

对Numpy函数进行载体化

如何使用html从excel中提取条件格式规则列表?

为什么这个带有List输入的简单numba函数这么慢

加速Python循环

如何使用数组的最小条目拆分数组

如何在solve()之后获得症状上的等式的值

在pandas中使用group_by,但有条件

使用NeuralProphet绘制置信区间时出错

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

在matplotlib中删除子图之间的间隙_mosaic

从Windows Python脚本在WSL上运行Linux应用程序

Polars将相同的自定义函数应用于组中的多个列,

如何创建引用列表并分配值的Systemrame列

在numpy数组中寻找楼梯状 struct

应用指定的规则构建数组

按条件添加小计列

替换包含Python DataFrame中的值的<;