Python classsmethod() Function

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

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

CodesCracker.welcome = classmethod(CodesCracker.welcome)
CodesCracker.welcome()

The output produced by this program is:

Welcome to CodesCracker

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 CodesCracker:
    def myfun(self, x):
        print("Value of x:", x)

print(CodesCracker.myfun)

CodesCracker.myfun = classmethod(CodesCracker.myfun)
CodesCracker.myfun(100)

print(CodesCracker.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(CodesCracker.myfun)

prints:

<function CodesCracker.myfun at 0x0000022D3EE6D9D0>

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

CodesCracker.myfun = classmethod(CodesCracker.myfun)

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

print(CodesCracker.myfun)

prints:

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

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

Related Article - Python class method Vs static method.

Python Online Test


« Previous Function Next Function »


Liked this post? Share it!