跳到内容

invalid-length-return-type (PLE0303)

源自 Pylint 代码检查工具。

作用

检查 __len__ 实现是否返回非负整数的值。

为什么这不好?

__len__ 方法应该返回一个非负整数。返回不同的值可能会导致意外的行为。

注意:boolint 的子类,所以从技术上讲,__len__ 返回 TrueFalse 是有效的。但是,为了与其他规则保持一致,当 __len__ 返回 bool 时,Ruff 仍然会发出诊断信息。

示例

class Foo:
    def __len__(self):
        return "2"

建议改为

class Foo:
    def __len__(self):
        return 2

参考