GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing codescracker.com — Python classmethod decorator: @classmethod
Python classmethod decorator: @classmethodThe class method decorator, or @classmethod, is used to define methods inside a class as class methods. For example: class CodesCracker: @classmethod def classfun(cls, x): print("The first parameter (cls):", cls) print("The second parameter (x):", x) CodesCracker.classfun("Hey!") Here is the output produced by the above Python program, demonstrating the @classmethod decorator: The first parameter (cls): <class '__main__.CodesCracker'> The second parameter (x): Hey! The class methods have a reference to the class object as their first argument. Class methods have access to what the class is. The class method is also a function, but with access to the object and its internals like fields and other methods, whereas static methods don't. The differentiation between these two is provided in class methods versus static methods in Python. The class methods can be called either directly or using: ClassName.ClassMethodName() Or by using an object of the class, in this way: ob = ClassName() ob.ClassMethodName() where ob is a variable that refers to the object of the class ClassName. In the above example program, using the following statement: CodesCracker.classfun("Hey!")
the class "CodesCracker" gets implicitly passed as the first parameter of the class method named classfun(), whereas "Hey!" will get passed as the second parameter of the class method named classfun(). That is, the "cls" parameter (the first parameter) while defining class methods using the @classmethod decorator refers to the class itself. Python @classmethod decorator syntaxThe syntax of the @classmethod decorator in Python is: @classmethod def myfun(cls, arg1, arg2, arg3, ..., argN): # definition code goes here Just like "self," the first parameter of the normal method inside a class refers to the object instance. In the case of class methods too, the first parameter of the class method, that is, "cls" inside a class, refers to the class itself. And the rest of all the parameters, like arg1, arg2, and so on, refer to the arguments that normal functions have. Python @classmethod decorator exampleHere is an example of the @classmethod decorator in Python: class CodesCracker: @classmethod def myfun(cls, x, y, z, str): print("The value of x:", x) print("The value of y:", y) print("The value of z:", z) print("The value of str:", str) CodesCracker.myfun(100, 200, 300, "codescracker") The snapshot given below shows the sample output produced by the above Python program, demonstrating the @classmethod decorator: « Previous Tutorial Next Tutorial » Practice Quizzes
Test your programming and computer science knowledge with interactive MCQs and topic-based quizzes. Popular Topics
Explore the most popular programming and computer science tutorials on CodesCracker. |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |