采用 @classmethod 修饰的方法为类方法;采用 @staticmethod 修饰的方法为静态方法;不用任何修改的方法为实例方法
1、实例方法
- 类中定义的方法默认都是实例方法,类的构造方法理论上也属于实例方法
- 实例方法包含一个self参数,用于绑定调用此方法的实例对象
- 实例方法通常由实例化后的对象调用
- 也支持类名调用实例方法,当需要手动给self参数传值
2、类方法
- 类方法最少也要包含一个参数,通常命名为cls,python会自动将类本身绑定给cls参数
- 类方法需要使用@classmethod修饰符进行修饰
- 类方法推荐直接使用类名调用
3、静态方法
- 静态方法就是函数,不同的是,静态方法定义在类空间中,函数定义在程序所在空间中
- 静态方法没有self、cls等特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定,所以静态方法中无法调用任何类属性和类方法
- 静态方法需要使用@staticmethod修饰
- 静态方法既可以使用类名也可以使用对象调用