博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python缓存装饰器,第二种方式(二)
阅读量:7267 次
发布时间:2019-06-29

本文共 684 字,大约阅读时间需要 2 分钟。

来个简单的装饰器

 

def cached_method_result(fun):    """方法的结果缓存装饰器"""    @wraps(fun)    def inner(self, *args, **kwargs):        if not hasattr(fun, 'result'):            result = fun(self, *args, **kwargs)            fun.result = result            fun_name = fun.__name__            setattr(self.__class__, fun_name, result)            setattr(self, fun_name, result)            return result        else:            return fun.result    return inner

 

使用方式:

class MongoMixin(object):    @property    @utils_ydf.decorators.cached_method_result    def mongo_16_client(self):        mongo_var = pymongo.MongoClient(app_config.connect_url)        return mongo_var

 

无论怎么调用mongo_16_client这个属性,都不会多次连接。

 

转载地址:http://oufcm.baihongyu.com/

你可能感兴趣的文章
了解CM系统
查看>>
Android内核开发:系统启动速度优化
查看>>
MYSQL查询重复记录的方法
查看>>
oracle的SYS_GUID
查看>>
android之listview上拉刷新
查看>>
关于jdbc批量更新失败的一个问题
查看>>
redis配置文件redis.conf参数说明
查看>>
PHP 替换文章关键字,链接 只替换一次2
查看>>
理解TIME_WAIT,彻底弄清解决TCP: time wait bucket table overflow
查看>>
linux sudo 命令
查看>>
Redis与Memcached区别
查看>>
添加删除路由
查看>>
Linux Shell脚本编程--Linux特殊符号大全
查看>>
微信小程序 - 创建第一个小程序
查看>>
我的友情链接
查看>>
"pointgreen@2X.png"
查看>>
OC warning
查看>>
深入浅出Zabbix 3.0 -- 第十四章 灵活的脚本扩展
查看>>
Cisco无线学习笔记
查看>>
Linux 第19天 sed和压缩工具
查看>>