classmethod and staticmethod are very similar. both are called by class but classmethod get passed class object as first argument(convention is to call it cls
)
class c:
@staticmethod
def stmethod(arg):
print(arg)
@classmethod
def clsmethod(cls, args):
print(cls, args)
c.stmethod("static method")
c.clsmethod("class method")