有参装饰器
一、有参装饰器
装饰器在装饰对象时,需要传参的装饰器
在某些时候,我们需要给用户的权限进行分类
@warpper1(参数1) # inner1 = wrapper1(inner2)
@warpper2(参数2) # inner2 = wrapper2(inner3)
@warpper3(参数3)
def user_auth(user_role):
def wrapper(func):
def inner(*args, **kwargs):
if user_role == 'SVIP':
res = func(*args, **kwargs)
return res
elif user_role == '普通用户':
res = func(*args, **kwargs)
return res
return inner
return wrapper
# 被装饰对象
@user_auth('SVIP')
# wrapper = user_auth('SVIP')
# @user_auth('SVIP') # wrapper = user_auth('普通用户')
@wrapper # <--- 返回结果(wrapper) <---- user_auth()
def index():
pass
index()