python注解(装饰器)的用法

带参数的要用三层def,第一层写注解里的参数,第二层写函数,第三层写具体逻辑。

如果是不带参数的注解,直接使用后两层即可

def needPermission(permissionstr):
    def decorator(func):
        def hasPermission(self,*args, **kw):
            sessionid = self.get_cookie("session_id")
            verification = self.get_cookie("verification")
            # print(sessionid)
            # print(verification)
            islogin, content = AuthSdk().isLogin(sessionid, verification)
            permissionList = []
            if islogin:
                permissionList = content["permissions"]
            else:
                self.set_status(401)
                self.write(R().errorCodeMsg(401, "认证不通过,请确认是否登录"))
                return
            # print('%s %s %s():' % (self, permissionstr, func.__name__))
            if permissionstr not in permissionList:
                self.set_status(403)
                self.write(R().errorCodeMsg(403, "没有访问权限"))
                return
            else:
                return func(self, *args, **kw)
        return hasPermission
    return decorator

 

转载于:https://www.cnblogs.com/zipon/p/10754883.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值