有参装饰器

TOC

一、有参装饰器

装饰器在装饰对象时,需要传参的装饰器

在某些时候,我们需要给用户的权限进行分类

@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()
原文地址:https://www.cnblogs.com/cnhyk/p/11890762.html