no-annotated-self

Forbid explicit type annotations on instance-method self parameters.

Message

Do not annotate self in instance methods.

Valid examples

class A:
    def method(self, value: int) -> int:
        return value
def helper(self: object, value: int) -> int:
    return value
Show more
class A:
    @classmethod
    def build(cls, value: int) -> "A":
        return cls()

Invalid examples

class A:
    def method(self: "A", value: int) -> int:
        return value

Suggested fix

class A:
    def method(self, value: int) -> int:
        return value
Show more
class A:
    async def method(self: "A") -> None:
        return None

Suggested fix

class A:
    async def method(self) -> None:
        return None