bad-dunder-method-name (PLW3201)
Derived from the Pylint linter.
This rule is unstable and in preview. The --preview
flag is required for use.
What it does
Checks for dunder methods that have no special meaning in Python 3.
Why is this bad?
Misspelled or no longer supported dunder name methods may cause your code to not function as expected.
Since dunder methods are associated with customizing the behavior
of a class in Python, introducing a dunder method such as __foo__
that diverges from standard Python dunder methods could potentially
confuse someone reading the code.
This rule will detect all methods starting and ending with at least
one underscore (e.g., _str_
), but ignores known dunder methods (like
__init__
), as well as methods that are marked with @override
.
Additional dunder methods names can be allowed via the
lint.pylint.allow-dunder-method-names
setting.
Example
Use instead: