装饰器
在flask框架里面,通过装饰器传参实现动态创建字典,来完成路由的功能
def set_value(value):
def set_fun(func):
def call_fun(*args,**kwargs):
print("2019",value)
return func(*args,**kwargs)
return call_fun
return set_fun
# 分为两步
# 先执行set_value,获得闭包的引用
# 在执行@闭包的引用
# func获得装饰前test函数的引用
# 装饰后test获得了call_fun函数的引用
@set_value("年")
def test():
print("test")
test()
装饰器传参的功能一般很少用到,也很少见到,当然在各种框架里面应该比较常见,装饰器传参的实现其实也很简单,就是在装饰器的外面在包裹一层函数,当调用最外层函数的时候会返回内层闭包的引用(也可以说是装饰器的引用)