python中静态方法与类方法
静态方法
定义:
在实例方法的上方加上@staticmethod ,方法参数可有可无
调用时使用类名.方法名()直接调用,也可以使用对象.方法名()调用
应用场景:方法无需使用对象中封装的值,就可以使用静态方法
类方法
定义:
在实例方法上方加上@classmethod
方法参数至少有一个cls参数,类方法中cls是类
执行时默认会将当前了传到参数中
调用时使用类名.方法名()调用
应用场景:
在方法中会使用到当前类,就可以使用类方法
class ClsMethod:
#实例方法定义
def comn_method(self):
print("这是实例方法")
@staticmethod
def static_method(): #静态方法
print("这是静态方法")
@classmethod
def cls_method(cls): #类方法,cls代表的是一个类
print("这是类方法")
obj1 = ClsMethod()
obj1.comn_method() #实例方法: 对象名.方法名(参数) 调用
ClsMethod.static_method() #静态方法: 类名.方法名(参数)直接调用 推荐这种使用方法
obj1.static_method() #静态方法: 对象名.方法名(参数)直接调用 不推荐这种使用方法
ClsMethod.cls_method() #类方法: 类名.方法名(参数) 直接调用