Python基础-装饰器
装饰器
装饰器本质上是一个函数,该函数用来处理其他函数,他可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器返回值
也是一个函数对象,它经常用于有切面环境的场景,比如插入日志、性能测试、事务处理、缓存、权限校验等应用场景
装饰器就是为已存在的对象添加额外的功能。
简单装饰器
import time
def show_time(f):
def inner():
start = time.time()
f()
end = time.time()
print('spend %s' % (end - start))
return inner
@show_time
def fansik():
for i in range(1000):
print('fansik %d' % i)
time.sleep(3)
fansik()
带参数的装饰器
import time
def logger(flag=''):
def show_time(f):
def inner():
start = time.time()
f()
end = time.time()
print('spend %s' % (end - start))
if flag == 'true':
print('记录日志')
return inner
return show_time
@logger('true')
def fansik():
print('exec fansik function')
time.sleep(3)
fansik()