Why use staticmethod instead of no decorator at all
问题 There are several good explanations on SO about why/when you should use a class method vs a static method, but I've not been able to find an answer for when you would use a static method over no decoration at all. Consider this class Foo(object): @staticmethod def f_static(x): print("static version of f, x={0}".format(x)) def f_standalone(x): print("standalone verion of f, x={0}".format(x)) And some output: >>> F = Foo >>> f = F() >>> F.f_static(5) static version of f, x=5 >>> F.f_standalone