I'm a beginner on this site, I have read all above answers, and got the information what I want. However, I don't have the right to upvote. So I want to get my start on StackOverflow with the answer as I understand it.
@staticmethod
doesn't need self or cls as the first parameter of the method@staticmethod
and @classmethod
wrapped function could be called by instance or class variable@staticmethod
decorated function impact some kind 'immutable property' that subclass inheritance can't overwrite its base class function which is wrapped by a @staticmethod
decorator. @classmethod
need cls (Class name, you could change the variable name if you want, but it's not advised) as the first parameter of function@classmethod
always used by subclass manner, subclass inheritance may change the effect of base class function, i.e. @classmethod
wrapped base class function could be overwritten by different subclasses.