我们在定义完类之后,要为定义好的类里添加不同的方法,这些方法分为三种:绑定到对象的方法、绑定到类的方法以及静态方法。
一、绑定到对象的方法:
通常情况下,在类中定义的所有没有被装饰器修饰的函数(注意了,这里说的就是所有,跟self啥的没关系,self也只是一个再普通不过的参数而已)都是对象的绑定方法,对象在调用绑定方法时会自动将自己作为参数传递给方法的第一个参数。
如上图,内置的构造函数__init__与我们新定义的函数run都是绑定到对象的方法,原则上这个方法只能被类实例化后的对象调用:
但是,如果我们利用类去调用这个run函数也不是不可以:
我们随意给run一个参数就可以利用类来调用了——可是,根据规则,绑定到对象的方法还是规定只能被对象调用,要是利用类来调用的话别人不会知道你在做什。。。。。。
二、绑定到类的方法:
由装饰器@classmethod修饰的方法就是绑定到类的方法了:
如上图,绑定到类的方法run可以直接由类People来调用。
还是一样的情况,我们如果强行用类实例化后的对象调用的话也可以执行,但是这样同样会显得“不伦不类”:
三、静态方法:
由装饰器@staticmethod修饰的方法就是静态方法了,它是一种普通函数,位于类定义的命名空间中,不会对任何实例类型进行操作。