ITPub博客

首页 > > > 简单粗暴的实现Python-Cache

简单粗暴的实现Python-Cache

作者:zuike2000 时间:2020-04-08 03:41:01 0 删除 编辑

MedusaSorcerer的博客


在不依赖第三方产品的时候, 缓存的方式有很多, Python的依赖库也可以实现, 但我们使用原生的纯Python代码来实现呢?

PS:代码平庸功能无用

#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
import time

DATA = dict(test=123)
TIMEOUT = dict(test=[1586314221.3422256, 123])


def timeout(second: (float, int)):
    def decorator(func):

        def wrapper(keyword):
            if keyword not in DATA.keys(): return f'Not found "{keyword}"'
            if (not TIMEOUT.get(keyword)) or (time.time() - float(TIMEOUT.get(keyword)[0]) >= float(second)):
                result = func(keyword)
                TIMEOUT[keyword][0] = time.time()
                print('-- 获取的是最新的数据内容 --')
                return result
            result = TIMEOUT.get(keyword)[1]
            TIMEOUT[keyword][0] = time.time()
            print('-- 获取的是缓存的数据内容 --')
            return result

        return wrapper

    return decorator


@timeout(10)
def cache(keyword):
    """ Python Cache """

    return DATA.get(keyword)
复制代码

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    404
  • 访问量
    2078