简单
def set_level(level):
def set_func(func):
def call_func(*args, **kwargs):
if level == 1:
print('--权限验证级别为1,验证通过')
elif level == 5:
print('--权限验证级别为5,验证通过')
return func()
return call_func
return set_func
# 只要装饰器后面传入了实参。就相当于执行了两个步骤:
# 1.调用set_level函数并且将 1 当做实参传递
# 2.用上一步调用的返回值即: return set_func 返回了set_func的函数引用,当做装饰器对test1函数进行装饰
@set_level(1)
def test1():
'''执行该函数前需要验证权限功能是否达到权限级别1'''
print('----test1----')
return 'OK'
@set_level(5)
def test2():
'''执行该函数前需要验证权限功能是否达到权限级别5'''
print('---test2---')
return 'ok'
test1()
test2()