We saw in Section 8.3: 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.
The following is an example of the standard case:
class A: def func(self,*args): <...>
This is contrasted by an example of the classmethod case:
class B: @classmethod def func(cls,*args): <...>
In practice, class methods...