(1)实例方法:第一个参数是self,self代表对象本身,哪个对象调用该方法,self就代表哪个对象
实例方法只能通过对象去调用
(2)类方法:@classmethod进行装饰(标识)
第一个参数是cls,cls代表的是类本身
(3)静态方法:@staticmethod进行装饰(标识)
简言之,静态方法下用到的属性和方法与类和实例没啥关系
(4)实例方法只能通过对象调用,类方法可以通过类和对象调用,静态方法可以通过类和对象调用
class Cat:
def __init__(self,name,age,gender): #实例方法
self.name=name
self.age=age
self.gender=gender
def skill(self,skill_name): #实例方法
print(“施展了{}技能”.format(skill_name))
@classmethod #类方法标识
def func1(cls): #类方法
print(“这是类方法”)
@staticmethod #静态方法标识
def func2(): #静态方法
print(“这是静态方法”)
kitty=Cat(“凯蒂猫”,2,“母”)
kitty.skill(“飞扑”) #对象调用实例方法
kitty.func1() #对象调用类方法
Cat.func1() #类调用类方法
kitty.func2() #对象调用静态方法
Cat.func2() #类调用静态方法