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:
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:
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:
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.
« Previous Function Next Function »
Liked this post? Share it!