1、实例化方法:
1、 该方法一定有参数,一般参数为self,通过它来传实例化对象属性名和属性,该方法只能由实例化对象调用
2、实例化方法是能够被类对象调用的 单纯的调用会报错
显然,程序会报错,但是我们观察一下报错的信息提示,即:调用的方法中没有给self传参数,slef就是我们对象的引用。
这个提示告诉了我们,之前在使用实例对象调用实例方法的时候,其实是python自动给self参数进行了传值,而使用Dog.action()的方式,我们只有类对象的引用,缺少实例对象的引用,python不能够实现自动的传递了。
正确的方式
2、类方法:
使用装饰器进行修饰,即@classmethod,会有参数,第一参数是cls即第一类对象。用来传递类属性和类方法名。实例化对象和类对象都能够直接调用
3、静态方法:
需要加装饰器,即@staticmethod,方法名当中没有任何参数,方法体当中不允许含有类属性和实例化属性,调用的话实例化对象和类对象都可以