装饰器
函数、方法或这类定义的前面可以使用一个特殊的符号,称之为装饰器,其目的是修改定以后面的行为。装饰器使用@符号表示,必须放在单独的行上、并且位于对应的函数、方法或类之前,例如:
@foo
def bar():
pass
装饰器可以重叠使用,但每个装饰器必须另起一行
@foo
@bar
def spam():
pass
那!我们可以自己定义一个装饰器,用于完成每个方法前都预先执行的操作,在flask里,一般的用与权限管理,用户登陆的检查,或者一些自己想干的一些事情
如下:
def set_count(f):
@wraps(f)
def req(*args, **kwargs):
//todo:你想做的事情,就在这里搞定
return f(*args, **kwargs)
return req
1、def setcount(f) 这一行用于定义一个装饰器方法,它接受一个函数作为参数
2、@wraps(f) 这一行 表示不改变使用装饰器原有函数的结构(如name,_doc)
3、def req(args,*kwargs) 表示支持任意的参数
4、return req 返回 装饰器函数
‘注意,代码缩进’
参考文献
1、https://blog.csdn.net/Refrain__WG/article/details/81013374
2、python参考手册 第四版
1、https://blog.csdn.net/Refrain__WG/article/details/81013374
2、python参考手册 第四版