1
這個子句工作正常:緩存結果()
if cache.get(cache_name):
events = cache.get(cache_name)
else:
events = self.get_google_events()
cache.set(cache_name, events, 60 * 10)
如果我把打印語句在get_google_events()
,它僅在緩存過期印刷,符合市場預期。但是,如果我嘗試將上面的內容縮短爲:
events = cache.get_or_set(cache_name, self.get_google_events(), 60 * 10)
每次都會觸發print語句(即緩存被無聲破壞)。第二種形式不等於第一種嗎?
我明白了 - 我錯誤地認爲,如果cache_name存在,它什麼都不會做。但是,這只是python的工作原理。感謝您的明確解釋(以及縮短的版本)。 – shacker