Class methods should use self as first argument

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

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