专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

简单粗暴的实现Python-Cache

39_1.png


在不依赖第三方产品的时候, 缓存的方式有很多, 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)

未经允许不得转载:搜云库技术团队 » 简单粗暴的实现Python-Cache

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们