Class methods should use self as first argument

Metadata

ID: python-best-practices/class-methods-use-self

Language: Python

Severity: Error

Category: Best Practices

Description

In a class method (that is not a class method nor a static method), the first argument must be self by convention.

Learn More

Non-Compliant Code Examples

class Foo:
	def bar(bar):  # use def bar(self) instead
		pass

Compliant Code Examples

class Foo:
	@staticmethod
	def static_method(bar):
		pass

	@classmethod
	def class_method(bar):
		pass

	def __call__(cls, *args, **kwargs):
		pass
	
class IFoo(Interface): # zope interfaces won't get flagged
	def method(i):
		pass
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis

PREVIEWING: may/unit-testing