self-or-cls-assignment (PLW0642)#
Derived from the Pylint linter.
What it does#
Checks for assignment of self and cls in instance and class methods respectively.
Why is this bad?#
The identifiers self and cls are conventional in Python for the first parameter of instance
methods and class methods, respectively. Assigning new values to these variables can be
confusing for others reading your code; using a different variable name can lead to clearer
code.
Example#
class Version:
def add(self, other):
self = self + other
return self
@classmethod
def superclass(cls):
cls = cls.__mro__[-1]
return cls
Use instead: