我們即將學習的是:在Python中實現(xiàn)更簡單好用的函數(shù)運算緩存。 函數(shù)運算緩存,顧名思義就是我們可以針對指定的函數(shù),讓其記住過往參數(shù)輸入和返回結果,使得后續(xù)接收到相同的參數(shù)時跳過函數(shù)運算,直接返回已緩存的結果值。 很多朋友應該知道Python標準庫里functools.lru_cache可以做函數(shù)運算緩存,但是它的功能實在是太簡陋了,像過期時間設置之類的功能都沒有。 而我們可以使用第三方庫cachier來代替,它的基本使用方式非常簡單,使用pip install cachier完成安裝后,我們來看一個簡單的示例: 這里我們定義一個具有一定運算耗時的函數(shù),利用cachier.cachier()裝飾,并利用參數(shù)stale_after設置緩存到期時間為10秒:
importtime fromcachierimportcachier fromdatetimeimporttimedelta @cachier(stale_after=timedelta(seconds=10)) defdemo(x:int,y:int): time.sleep(2) returnx*y foriinrange(10): print('-'*50) print(f'第{i+1}次執(zhí)行') start=time.time() demo(1,1) print(f'耗時{round(time.time()-start,2)}秒') time.sleep(2)過程打印記錄如下: 可以觀察到,我們的函數(shù)按照設定好的過期時間進行著緩存。除此之外,cachier還有很多其他實用特性,譬如基于mongodb實現(xiàn)分布式存儲等,你可以前往其官方倉庫查看詳細文檔說明:https://github.com/shaypal5/cachier
-
存儲
+關注
關注
13文章
4226瀏覽量
85575 -
函數(shù)
+關注
關注
3文章
4277瀏覽量
62323 -
python
+關注
關注
55文章
4767瀏覽量
84375
原文標題:Python 中更好用的函數(shù)運算緩存
文章出處:【微信號:AI科技大本營,微信公眾號:AI科技大本營】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論