在一个类中,可能出现三种方法,实例方法、静态方法和类方法,下面来看看三种方法的不同:
1、实例方法
- 实例方法的第一个参数必须是”self”,实例方法只能通过类实例进行调用,这时候“self”就代表这个类实例本身。通过”self”可以直接访问实例的属性。
输出:
2、类方法
- 类方法以cls作为第一个参数,cls表示类本身,定义时使用@classmethod装饰器。通过cls可以访问类的相关属性。
代码的输出为,从这段代码可以看到,类方法可以通过类名访问,也可以通过实例访问:
3、静态方法
- 与实例方法和类方法不同,静态方法没有参数限制,既不需要实例参数,也不需要类参数,雅思听力评分定义的时候使用@staticmethod装饰器。
- 同类方法一样,静态法可以通过类名访问,也可以通过实例访问。
这三种方法的主要区别在于参数,实例方法被绑定到一个实例,只能通过实例进行调用;但是对于静态方法和类方法,可以通过类名和实例两种方式进行调用。