装饰器
作用:不改变原函数,给原函数的功能进行增加新功能或修改;
装饰器(decorator):
把一个函数当作参数,返回一个替代版的函数
本质上,decorator就是一个返回函数的高阶函数
@decorator 语法糖(为下面定义的函数加上装饰器)
函数参数
无参数
带固定参数和返回值
def login(func):
def inner(arg,arg1):
print('login')
return func(arg,arg1)
return inner
@login #此次相当于执行了func=login(func)
def func(arg,arg1):
print('func: %s -- %s'%(arg,arg1))
func('hello','world')
参数个数不确定或包含字典类型的参数
装饰器参数
装饰器添加说明类参数
多个装饰器顺序
练习1
#创建装饰器, 要求如下:
#1. 创建add_log装饰器, 被装饰的函数打印日志信息;
#2. 日志格式为: [字符串时间] 函数名: xxx, 运行时间:xxx,
运行返回值结果:xxx