@概述
- 通常在类中定义一个方法时,系统都会默认带上一个self参数,这样的方法称之为实例方法;
- 实例方法也就是,只有通过创建类的实例才能访问的方法;
- 在面向对象编程中,我们有90%以上的时候是在和实例及实例方法打交道;
- 在类中我们还可以定义两类方法,即静态方法、类方法,这两种方法不需要创建实例、通过类名就能访问;
- 静态方法以@staticmethod装饰器进行装饰,它相当于一个写在类的作用域中的普通方法;
- 类方法以@classmethod装饰器进行装饰,它有一个系统默认参数cls,代表的是当前类,我们可以通过这个cls()去创建一个类的实例;
- 由于是写在类的作用域中的,所以静态方法和类方法都能访问类中的“非实例”成员;
- 静态方法和类方法通过类名去进行调用,也可以通过实例去进行调用;
@案例
class MyClass:
# 属于类(而非实例)的属性,静态方法和类方法都可以通过类名访问
name = None
# 实例方法,只能通过实例去调用