Kivy - 缓存管理器
在 Kivy 框架中,Cache 类通过将一个或多个 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