本文最后更新于 1041 天前,其中的信息可能已经有所发展或是发生改变。
python 装饰器
学习之后发现 python 装饰器的作用类似于 java 里面的注解,可以将函数共同的操作抽离出来封装,也可以固定封装一个业务逻辑,比如 某些函数需要判断传入的参数是否合法,就可以写一个装饰器将判断逻辑封装起来,然后在需要判断的函数上面添加装饰器
def checkargs(func):
def wrapper(*args,**kwargs):
print("check args")
return func(*args,**kwargs)
return wrapper
@checkargs
def nextPage(index,limit):
pass
还有带参数的装饰器,比如一开始学习的时候看的 FastAPI,对路由的定义就是通过装饰器的,那么可以这样写
def app_route(url):
def wrapper(func):
def routewrapper(*args,**kwargs):
print("current route:"+url)
return func(*args,**kwargs)
return routewrapper
return wrapper
装饰器还有一种 类装饰器
class Test(object):
def __init__(self):
pass
def __call__(self,func):
def wrapper(*args,**kwargs):
print("demo")
return func(*args,**kwargs)
return wrapper
这种装饰器我觉得更适合整个项目使用