Python classsmethod() Function

The classmethod() function in Python returns a class method of specified function. For example:

class fresherearth:
    def welcome(self):
        print("Welcome to fresherearth")

fresherearth.welcome = classmethod(fresherearth.welcome)
fresherearth.welcome()

The output produced by this program is:

Welcome to fresherearth

Note: A class method can be called by an object or by a class, both.

Note: A class method is a method, bound to the class, rather than the object of the class.

Recommend - Use @classmethod decorator to define class methods, instead of using classmethod() function to get/convert to a class method.

Python classmethod() Function Syntax

The syntax of classmethod() function is:

classsmethod(x)

where x is a function. The classmethod() converts the function x into a class method.

Python classmethod() Function Example

Here is an example of classmethod() function in Python:

class fresherearth:
    def myfun(self, x):
        print("Value of x:", x)

print(fresherearth.myfun)

fresherearth.myfun = classmethod(fresherearth.myfun)
fresherearth.myfun(100)

print(fresherearth.myfun)

The snapshot given below shows the sample output produced by above Python program, demonstrating the classmethod() function:

python classmethod function

As you can see from the above output, before converting the method named myfun() to a class method using classmethod() function. The statement:

print(fresherearth.myfun)

prints:

<function fresherearth.myfun at 0x0000022D3EE6D9D0>

indicates that the function myfun of the class fresherearth is like a normal function. But after using the following statement:

fresherearth.myfun = classmethod(fresherearth.myfun)

The same function gets converted into class method. Therefore now the following statement:

print(fresherearth.myfun)

prints:

<bound method fresherearth.myfun of <class '__main__.fresherearth'>>

indicates that the function myfun becomes a method that is now bounded to the class fresherearth, and myfun() is now a class method.

Related Article - Python class method Vs static method.

Python Online Test


« Previous Function Next Function »