目标:
    1:掌握为一个类创建的对象加上括号会发生什么?
    2:掌握什么是类装饰器
    3:掌握怎么使用类装饰器

    一:为一个类创建的对象加上括号会发生什么?

    答:为一个类创建的对象加上括号会调用这个类中的 call 方法

    图示:

    image.png


    二:什么是类装饰器

    答:正常装饰器的扩展体是一个闭包,而类装饰器的扩展体是一个类!


    三:怎么使用类装饰器

    关键字:@类名 例如 @Test

    使用方法:在待扩展函数前面加上@类名 即可实现利用类装饰器装饰函数的功能

    实例:

    @Tset
    def ceshi( ):
    Xxx
    Xxx
    Xxx


    注意事项:

    1:上面示例的 @Test 等价于 ceshi = Test(ceshi)
    2:实例化的对象加上括号就会调用类里面的 call( )方法

    3:类装饰器中的类必须包含两种方法,init( ) 与call( ) 方法,而且 init( ) 方法必须接收 待扩展的函数名!并且初始化 例如 self.func = func call( )方法内必须要执行 self.func()才能达到装饰函数的目的

    代码演示:

    image.png