一、简单的装饰器

1.为什么要使用装饰器呢?

  装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展

  装饰器的本质:就是一个闭包函数

那么我们先来看一个简单的装饰器:实现计算每个函数的执行时间的功能

 1 import time 
 2 def  wrapper(func):
 3         def inner():
 4               start=time.time()
 5               func()
 6               end=time.time()
 7               print(end-start)
 8         return inner 
 9     
10 def  hahaha():
11         time.sleep(1)
12         print('aaaaa')
13 hahaha=wrapper(hahaha)
14 hahaha() 
简单的装饰器

 

装饰器、迭代器和生成器

上面的功能有点不简介,不完美,下面就引进了语法糖。

 1 import time
 2 def wrapper(func):
 3         def inner():
 4                start=time.time()
 5                func()
 6                end=time.time()
 7                print(end-start)
 8         return inner
 9 @wrapper
10 def  kkk():#相当于kkk=wrapper(kkk)
11     print('aaaaa')
12 kkk()
装饰器-------语法糖

相关文章: