Class methods
We saw in the previous section on Bound and unbound methods how methods are either bound to an instance of a class or remain in a state as unbound methods. Class methods are different. They are always bound methods. They are bound to the class itself.
We will first describe the syntactic details and then give some examples to show what these methods can be used for. To indicate that a method is a class method the decorator line precedes the method definition:
@classmethod
While standard methods make a reference to an instance by the use of their first argument, the first argument of a class method refers to the class itself. By convention the first argument is called self
for standard methods and cls
for class methods.
- Standard case:
class A: def func(self,*args): <...>
- Class method case:
class B: @classmethod def func(cls,*args): ...