Python中@classmethod和@staticmethod

Python中classmethod 、staticmethod 、abstract method
类的方法类型有:普通方法、类方法、静态方法、抽象方法等


关于Python中类的普通方法、类方法、静态方法的区别,参考以下内容,写得很好。

另一篇博客也是关于类的普通方法、类方法、静态方法的区别,外加抽象方法的比较。

《流畅的Python》第九章中作者说:

classmethod 装饰器非常有用,但是我从未见过不得不用 staticmethod 的情况。如果想定义不需要与类交互的函数,那么在模块中定义就好了。有时,函数虽然从不处理类,但是函数的功能与类紧密相关,因此想把它放在近处。即便如此,在同一模块中的类前面或后面定义函数也就行了。

的确,staticmethod不是特别有用。