python 装饰方法

    def _concurrent(func):
        @wraps(func) # 加入这个的目的是保持原来方法的属性
        def arg_wrapper(self, *args, **kwargs):
            try:
                jc = self.available_jc.pop()
                # return f is function
                f = getattr(jc, func.__name__)
                r = f(*args, **kwargs)
                self.available_jc.append(jc)
                return r
            except IndexError:
                raise RuntimeError('Too many concurrent connections!'
                                   'Try to increase the value of "max_concurrency", '
                                   'currently =%d' % self.max_concurrency)

        return arg_wrapper

 

    @_concurrent
    def subjective_judge(self, **kwargs):
        pass

 

 

    @property
    @_concurrent
    def server_status(self):
        pass

 

posted @ 2019-02-18 15:49  下路派出所  阅读(367)  评论(0编辑  收藏  举报