What is the difference between a function decorated with @staticmethod and one decorated with @classmethod?
Basically @classmethod makes a method whose first argument is the class it's called from (rather than the class instance), @staticmethod does not have any implicit arguments.
@classmethod
@staticmethod