CodeQL documentation

First parameter of a method is not named ‘self’

ID: py/not-named-self
Kind: problem
Security severity: 
Severity: recommendation
Precision: very-high
Tags:
   - maintainability
   - readability
   - convention
Query suites:
   - python-security-and-quality.qls

Click to see the query in the CodeQL repository

Normal methods should have at least one parameter and the first parameter should be called self.

Recommendation

Ensure that the first parameter of a normal method is named self, as recommended by the style guidelines in PEP 8.

If a self parameter is unneeded, the method should be decorated with staticmethod, or moved out of the class as a regular function.

Example

In the following cases, the first argument of Point.__init__ is named val instead; whereas in Point2.__init__ it is correctly named self.

class Point:
    def __init__(val, x, y):  # BAD: first parameter is mis-named 'val'
        val._x = x
        val._y = y

class Point2:
    def __init__(self, x, y):  # GOOD: first parameter is correctly named 'self'
        self._x = x
        self._y = y

References

  • © GitHub, Inc.
  • Terms
  • Privacy