python 带参数装饰器如何装饰类函数??

def chcke(maker=0)
    def check_login(func):
        @wraps(func)
        def jurisdiction(request, *args, **kwargs):
            if maker==0:
                pass
            else:
                pass
        return jurisdiction
    return check_login
        

我有上面一种装饰器,需要用它来装饰下面的类中的get函数,请问该如何实现

class login(View):
    def get(request,*args,**kwargs):
        pass
        return None
    def post(request,*args,**kwargs):
        pass
        return None

 

结题了,自己做出来了

之前的装饰器少了个返回函数,添加了一个return func(self, request, *args, **kwargs)

def require_role(role=None):
    def _deco(func):
        @wraps(func)
        def __deco(self, request, *args, **kwargs):
            super_number = request.super_number
            if super_number:
                if role == super_number:
                    return func(self, request, *args, **kwargs)
                else:
                    pass
            else:
                pass
        return __deco
    return _deco

函数调用:

class login(View):
    @require_role((lambda:role.objects.get(role='login').role)())
    def get(request,*args,**kwargs):
        pass
        return None
    def post(request,*args,**kwargs):
        pass
        return None

 

@chcke

def get(request,*args,**kwargs):