检查变量是否设置为NO_VALUE

时间:2016-02-12 17:24:37

标签: python python-2.7 dogpile.cache

我正在使用dogpile在我的python程序中有缓存。 在我的程序初始化期间,我清理缓存main

SimpleCache.set_fault_injector(NO_VALUE)

然后我用:

检索对象
@staticmethod
def set_fault_injector(injector):
    SimpleCache.save("fault_injector", injector)

在我的测试中,我正在检查@staticmethod def get_fault_injector(): return SimpleCache.get("fault_injector") injector = get_fault_injector() 变量是否设置为injector,但比较结果是NO_VALUE(它应该是False)。如何检查TRUE是否设置为injector?我清除缓存的方式是正确的吗?

NO_VALUE

1 个答案:

答案 0 :(得分:1)

但是,根据我对文档的理解,我没有经验,但是当缺少值时,dogpile通常会返回dogpile.cache.api.NoValue的特定实例,即NO_CACHE

此处的问题可能与您明确将缓存密钥设置为NO_CACHE有关,这最终会导致您使用NoValue类的2个不同实例。

在我看来,NO_CACHE并不是真的意味着用于取消设置密钥,我相信如果您实际使用了.delete("fault_injector")或缓存包装器提供的任何删除方法,您的问题就会得到解决