一、Python类方法
Python 类方法和实例方法相似,类方法必须要有第一个参数,通常传cls(也可以传self),cls指向类本身。
和实例方法最大的不同在于,类方法需要使用@classmethod
修饰符进行修饰。
(1)类不能直接调用类中的函数,必须加@classmethod才能直接调用。
若不加@classmethod,就是普通函数,通过实例化的方法调用
(2)类方法中不能直接调用实例方法和实例变量(即普通方法和普通变量)
(3)类方法中可以调用其他类方法和类变量
class MethodClass: CLASS_Prama=12 def __init__(self): self.name="Balllyh" self.age=25 @classmethod def class_method(cls): print("这是一个类方法",cls.CLASS_Prama)#类函数,可以直接调用 #类方法推荐直接使用类名调用 MethodClass.class_method() print(MethodClass.CLASS_Prama) #也可以使用实例对象去调用,但不推荐 mer=MethodClass() mer.class_method()
二、静态方法
静态方法使用@staticmethod装饰器,没有类似 self、cls 这样的特殊参数。
静态方法无法直接使用任何类变量,类方法,或者实例方法,实例变量
调用:直接使用类名调用,也可以使用实例方法调用
class MethodDemo: param_1=0 @staticmethod def static_demo(): print("这是一个静态方法") #调用,直接使用类名调用 MethodDemo.static_demo() #也可以使用实例化方法调用 de=MethodDemo de.static_demo()
三、使用场景
@classmethod,不修改原有函数的功能,在原函数基础上,增加新功能,将新功能写成类函数,进行调用使用