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.
Exercise 1
Exercise 2
Exercise 3
Exercise 4
Exercise 5
Exercise 6
Exercise 7
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.
Syntax:
class myClass:
@classmethod
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 remaines 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
There is no such restriction of any specific
Taking a class or, in short, form cls as an
parameter related to class in the Static
argument is a must for a class method.
method.
With the help of class methods, we can With a static method, we can not change or
change and alter the variables of the class. alter the class state.
Class methods are restricted to OOPs, so we
The static method is not restricted to a class
can only use them if a class exists
We generally use class methods to create
factory methods. Factory methods return a Static methods are used to create utility
class object which is similar to a constructor functions.
for different use cases.
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