Kivy - 快取管理器



在 Kivy 框架中,Cache 類透過將 Python 物件賦值為唯一鍵的值來儲存一個或多個 Python 物件。Kivy 的快取管理器透過限制其中物件的數量或對其訪問設定超時限制來控制其中的物件。

Cache 類在 "kivy.cache" 模組中定義。它包含靜態方法:register()、append()、get() 等。

首先,您需要透過設定最大物件數和超時時間來在快取管理器中註冊一個類別。

from kivy.cache import Cache
Cache.register(category='mycache', limit=10, timeout=5)

您現在可以新增最多 10 個 Python 物件,每個物件都有一個唯一的鍵。

key = 'objectid'
instance = Label(text=text)
Cache.append('mycache', key, instance)

get() 方法從快取中檢索物件。

instance = Cache.get('mycache', key)

Cache 類定義了以下**方法和屬性** -

register() 方法

此方法使用指定的限制在快取中註冊一個新類別。它具有以下引數 -

  • category - 類別的字串識別符號。

  • limit - 快取中允許的最大物件數。如果為 None,則不應用限制。

  • timeout - 物件將在快取中刪除之前的時間。

append() 方法

此方法將新物件新增到快取中。定義了以下引數 -

  • category - 類別的字串識別符號。

  • key - 要儲存的物件的唯一識別符號。

  • obj - 要儲存在快取中的物件。

  • timeout - 如果物件未被使用,則在該時間後將其刪除。如果使用 None 作為鍵,則會引發 ValueError。

get() 方法

此方法用於從快取中獲取物件,具有以下引數 -

  • category - 類別的字串識別符號。

  • key - 儲存中物件的唯一識別符號。

  • default - 如果未找到鍵,則返回的預設值。

示例

請檢視以下示例 -

from kivy.cache import Cache
from kivy.uix.button import Button
from kivy.uix.label import Label

Cache.register(category='CacheTest', limit=5, timeout=15)

b1 = Button(text='Button Cache Test')
Cache.append(category='CacheTest', key='Button', obj=b1)

l1 = Label(text='Label Cache Test')
Cache.append(category='CacheTest', key='Label', obj=l1)

ret = (Cache.get('CacheTest', 'Label').text)
print (ret)

輸出

它將產生以下輸出 -

Label Cache Test
廣告