Course Content

Class Methods In Python | Python Tutorials For Absolute Beginners In Hindi #56

Before moving forward to our topic, I would like to share with you the link to all the exercises we have done so far. If you are following this course since the beginning then they are a great way for you to test your skills.

We have been dealing with static methods until now. In Object-Oriented programming, there is a new concept of a class method, which we will see today in this lecture. They are very different from static methods as they are limited in their functionality to the class they are built-in. They can be called by using the class name and also can be accessed by using the object.

As we have observed in the previous tutorials, we cannot change the value of a variable defined in the class from outside, using an object. Instead, if we try that, a new instance variable will be created for the class having the value we assigned. But no change will occur in the original value of the variable.

We saw the use of self keyword in the previous tutorial. In this tutorial, we are going to know the working of a new keyword i.e., cls. Class methods take cls parameter that points to the class and not the object instance when the method is called.


class myClass:
    def myfunc (cls, arg1, arg2, ...):

myfunc defines the function that needs to be converted into a class method

returns: @classmethod returns a class method for function.

Because the class method only has access to cls argument, it cannot modify object instance state. However, class methods can still modify class state that applies to all instances of the class. So a class method automatically recognizes a class, so the only parameter that remained to be passed is the function that needs conversion.

@classmethod Decorator:

 We have covered decorators in detail in Tutorial #51, so here we are just doing to define the functionality of decorator instead of its working. A @classmethod Decorator is a built-in function in Python. It can be applied to any method of the class. We can change the value of variables using this method too.

Differences between Class Method and Static Method:

Class method

Static Method

Taking a class or, in short, form cls as an argument is a must for a class method.

There is no such restriction of any specific parameter related to class in the Static method.

With the help of class methods, we can change and alter the variables of the class.

With a static method, we can not change or alter the class state.

Class methods are restricted to OOPs, so we can only use them if a class exists

The static method is not restricted to a class

We generally use class methods to create factory methods. Factory methods return a class object which is similar to a constructor for different use cases.

Static methods are used to create utility functions.

A quick overview:

Python class method is a way to define a function for the Python class. It receives the class as an implicit first argument. Using @classmethod decorator, it is possible to create as many constructors for a class that behaves like a factory constructor. Hopefully, now you can apply this concept to your projects and use them to improve the organization and quality of your code.

Code as described/written in the video


Arshad1 10 months, 3 weeks ago
code nhi  hai isme
emon334 9 months, 1 week ago
code nahi hai vai
Shashu12 3 months, 4 weeks ago


No downloadable resources for this video. If you think you need anything, please post it in the QnA!

Course Announcements

Any Course related announcements will be posted here