检查变量是否设置为NO_VALUE
我正在使用dogpile在我的python程序中拥有缓存。 在我的程序的初始化,我清理缓存SimpleCache.set_fault_injector(NO_VALUE)
检查变量是否设置为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
?我清除缓存的方式是正确的?
In [3]: injector Out[3]: <dogpile.cache.api.NoValue at 0x7fdde0dfd750>
In [4]: NO_VALUE
Out[4]: <dogpile.cache.api.NoValue at 0x7fdde16dbed0>
In [5]: injector == NO_VALUE
Out[5]: False
In [6]: type(injector)
Out[6]: dogpile.cache.api.NoValue
In [7]: type(NO_VALUE)
Out[7]: dogpile.cache.api.NoValue
In [8]: injector is NO_VALUE
Out[8]: False
[9]: type(injector) == type(NO_VALUE)
Out[9]: True
回答:
我没有然而,在Dogpile网站的经验,从我从文档了解,当值是缺少那么Dogpile网站通常返回的dogpile.cache.api.NoValue
一个具体的实例,这是NO_CACHE
。
这里的问题可能与您明确地设置缓存键为NO_CACHE
有关,后者以某种方式最终会让您留下2个不同的NoValue
类实例。
在我看来,NO_CACHE
并不是真的用于取消设置密钥,我相信如果您实际使用.delete("fault_injector")
或缓存包装器可用的任何移除方法,您的问题将得到解决。
以上是 检查变量是否设置为NO_VALUE 的全部内容, 来源链接: utcz.com/qa/258678.html