一、类方法
1、类方法的定义
- 使用
@classmethod
进行修饰 - 方法中第一个形参是cls
class People:@classmethoddef func_name(cls, params):pass
2、类方法的调用
class Student:@classmethoddef s_info(cls):print("call Student classmethod")Student.s_info() # 使用“类名.方法名”的方法来调用stu = Student()
stu.s_info() # 使用“对象.方法名” 的方法来调用
二、实例方法
1、实例方法的定义
- 在 类 中定义的 方法 默认都是实例方法
- 第一个形参是self,不需要使用任何的修饰符修饰
2、实例方法的调用
- 第一种是通过 “对象.方法名” 的方法来调用
- 第二种是通过 “类名.方法名(对象, 参数列表)” 的形式来调用
class Student:def s_info(self):print("call Student instancemethod")stu = Student()stu.s_info() # 通过 “对象.方法名” 的方法来调用
Student.s_info(stu) # 类名.方法名(对象, 参数列表)” 的形式来调用
三、类方法和实例方法区别
- 类方法第一个形参是cls,实例方法第一个形参是self
- 类方法调用不需要创建对象,实例方法调用必须要创建对象
四、静态方法
1、静态方法的定义
- 静态方法的需要使用
@staticmethod
来修饰 - 静态方法的 参数 没有任何的限制,可以没有任何参数,第一个参数也不必像 类方法 和 实例方法 那样
class Student:@staticmethoddef func_name(params):pass
2、静态方法的调用
class Student:@staticmethoddef s_info():print("call Student staticmethod")Student.s_info() # “类名.方法名” 的方法来调用stu = Student()
stu.s_info() # “对象.方法名” 的方法来调用
3、静态方法的使用场景
- 既不需要访问实例属性或者实例方法
- 也不需要访问类属性或类方法