Python高阶---装饰器

开放封闭原则:软件实体应该是可扩展,而不可修改的,即对扩展是开放的,而对修改是封闭的

装饰器的作用:在不更改原功能函数内部代码,并且不改变调用方法的情况下为原函数添加新的功能

 

装饰器的应用场景

1、登录验证

2、函数运行时间统计

3、执行函数之前做准备工作

4、执行函数之后做清理功能

 

常用的装饰器

  @classmethod:被该方法装饰之后,该方法就是一个类方法且传递的第一个参数是 cls 即类本身

  @statictmethid:静态方法,实例和类都可以调用,如:Test().test_01(),Test.test_01(),被静态方法装饰的方法可传参可不传,若传参在调用时必须传递参数

  @property:设定只读属性,即被装饰的方法可以跟类属性一样被调用,但只能读不能修改

 

定义一个time_count装饰器:即计算函数运行所需的时间

  

 

 装饰器有参数时的流程走向

  

 

 装饰器装饰类的要求:

   当装饰器装饰一个类时,需把装饰器中传入的参数return,若不是装饰类,可不return

     

 

装饰器的运行顺序

   一个函数使用多个装饰器,是从下往上装饰,从上往下执行

  

 

 

  当调用装饰器时,想要备注当前函数,可在装饰器前再加一个外部函数

       

 

单例模式装饰器

  

 

 

 

类实现装饰器

       

 

posted @ 2022-01-17 15:14  哩子吖  阅读(77)  评论(0)    收藏  举报