什么时候使用静态方法和类方法


两种方法的用法

class MyClass():
    @staticmethod
    def method1(*args):
        pass
    
    @classmethod
    def method2(cls, *args):
        pass

一般我们在Python中使用类的时候,会带上self参数,表示当前的对象。但是经过静态方法和类方法装饰之后,函数都不带self参数了。

@staticmethod

如果用不到类的变量,就可以考虑使用静态方法。准确来说,静态方法用不到类中的数据,它仅仅是因为逻辑上的需要被归并到该类中。

@classmethod

如果用不到实例的变量,就可以考虑使用类方法。静态方法与类绑定,不与实例绑定,主要用于修改类的数据和行为。