What do @classmethod
and @staticmethod
mean in Python, and how are they different? When should I use them, why should I use them, and how should I use them?
As far as I understand, @classmethod
tells a class that it's a method which should be inherited into subclasses, or... something. However, what's the point of that? Why not just define the class method without adding @classmethod
or @staticmethod
or any @
definitions?