Python之内置装饰器

一、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,不修改原有函数的功能,在原函数基础上,增加新功能,将新功能写成类函数,进行调用使用

 

posted @ 2021-12-27 20:41  Balllyh  阅读(121)  评论(0编辑  收藏  举报