跳到内容

len-test (PLC1802)

源自 Pylint 代码检查工具。

修复总是可用的。

作用

检查布尔测试上下文中序列上的 len 调用。

为什么这不好?

空序列在布尔上下文中被认为是假。您可以移除对 len 的调用,或者将长度与标量进行比较。

示例

fruits = ["orange", "apple"]
vegetables = []

if len(fruits):
    print(fruits)

if not len(vegetables):
    print(vegetables)

建议改为

fruits = ["orange", "apple"]
vegetables = []

if fruits:
    print(fruits)

if not vegetables:
    print(vegetables)

修复安全性

len 调用包含注释时,此规则的修复被标记为不安全,因为注释将被移除。

例如,在以下情况下,修复将被标记为不安全

fruits = []
if len(
    fruits  # comment
):
    ...

参考

PEP 8:编程建议