跳到内容

bad-dunder-method-name (PLW3201)

源自 Pylint 代码检查工具。

此规则不稳定且处于预览状态。使用需要 --preview 标志。

作用

检查在 Python 3 中没有特殊含义的 dunder 方法。

为什么这不好?

拼写错误或不再支持的 dunder 名称方法可能会导致您的代码无法按预期运行。

由于 dunder 方法与自定义 Python 中类的行为相关联,因此引入诸如 __foo__ 之类的 dunder 方法,如果它与标准的 Python dunder 方法不同,可能会让阅读代码的人感到困惑。

此规则将检测所有以至少一个下划线开头和结尾的方法(例如,_str_),但会忽略已知的 dunder 方法(如 __init__),以及用 @override 标记的方法。

可以通过 lint.pylint.allow-dunder-method-names 设置来允许其他 dunder 方法名称。

示例

class Foo:
    def __init_(self): ...

建议改为

class Foo:
    def __init__(self): ...

Options (选项)