# decorator wrapper for _Parser() def Parser(cls, cache = False): def _fun(fun): def _Fun(*arg, **kw): # try get from cache if cache and (len(arg) >= 1 or '_id' in kw): _id = arg[0] if arg else kw['_id'] o = Cacher(cls).get(_id) if o: return o ret = fun(*arg, **kw) try: ret = _Parser(ret, cls) except Exception as e: logging.exception('failed to parse') return ret return _Fun return _fun 主要是为了对函数的返回值做解析并缓存
大概是这样用的
@Parser(Type, True) def get_type(_id): ... 现在脑袋有点晕
