定义

  本质就是函数,功能 为其它函数添加附加功能

  原则:

  • 不修改被修饰函数的源代码
  • 不修改被修饰函数的调用方式

  装饰器的知识储备

  装饰器 = 高阶函数+函数嵌套+闭包  

  这里面要明确高阶函数的定义

 1 import time#导入时间模块儿
 2 def foo(func):  # func = test
 3     def bar(*args,**kwargs):
 4         start_time = time.time()
 5         res=func(*args,**kwargs)  # 这里就是在运行test()  赋予变量
 6         stop_time = time.time()
 7         print("狼来了的时间为%s" %(stop_time-start_time))
 8         return res # 返回test()的值
 9     return bar
10 @foo  # @foo 相当于 test=foo(test) 调用foo函数并将test传给func
11 def test(name,age):
12     time.sleep(1)
13     print("名字叫%s年龄为%s的狼来了" %(name,age))
14     return "村里的羊被吃了"
15 ret = test("灰太狼",age=10)  # test()意在运行bar()   # 输出res的返回值
16 print(ret)
装饰器模型

相关文章:

  • 2021-06-02
  • 2021-07-02
  • 2022-01-19
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-02
  • 2021-05-25
  • 2021-08-25
  • 2022-12-23
  • 2021-11-16
相关资源
相似解决方案