簡體   English   中英

Flask-cache為int和long參數生成不同的鍵

[英]Flask-cache generate different keys for int and long parameters

Flask-cache使用函數參數來生成緩存鍵,但是對於long和int類型參數,它會使用不同的鍵:

@cache.memoize(3600)
def foo(a):
    return a

foo(1)foo(1L)將生成不同的緩存鍵,我該怎么做才能將它們的返回值分配給同一緩存鍵?

您可以通過子類將整數轉換為long。

例如。

class CustomCache(Cache):
    def _memoize_kwargs_to_args(self, f, *args, **kwargs):
        keyargs, keykwargs = super(CardCache, self) \
            ._memoize_kwargs_to_args(f, *args, **kwargs)

        new_args = []
        for arg in keyargs:
            if isinstance(arg, numbers.Integral):
                arg = long(arg)
            new_args.append(arg)

        return tuple(new_args), keykwargs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM