我正在寻找一种使用 python 的方法cachetools内置库功能的缓存,但也支持命中/未命中统计,使用自定义键函数,并且如果可能的话支持无界缓存?
不幸的是,我只能找到这些方法:
from cachetools.func import lru_cache
@lru_cache(maxsize=None)
def foo(a, b, c=None):
print("foo")
Run Code Online (Sandbox Code Playgroud)
from cachetools import cached
@cached(
cache={},
key=lambda a, b, c=None: "a" if c is None else "b"
)
def foo(a, b, c=None):
print("foo")
Run Code Online (Sandbox Code Playgroud)
或者,使用这个“黑客”:
from cachetools import cached, LRUCache
@cached(
cache=LRUCache(maxsize=1, getsizeof=lambda _: 0), # will always pass the test of maxsize check
key=lambda a, b, c=None: "a" if c is None else "b"
)
def foo(a, b, c=None):
print("foo")
Run Code Online (Sandbox Code Playgroud)
如果我想使用命中/未命中统计数据和自定义按键功能,我该怎么做?
我知道如何自己实现一个,我只是想知道python的cachetools/functools中是否有一些已经内置的方法支持这一点?
我一直在尝试自定义一个快捷键来删除退格整个单词。
我已经尝试了网上的所有方法,但仍然不起作用。
我正在使用 iterm2,使用Natural Text Editing预设的键,并且仍然 - 执行command + delete将删除整行,执行option + delete将删除最后一个单词,直到某个特殊字符(这可能是斜杠、连字符、下划线、分号等)。
执行control + W与 得到相同的结果option + delete。
我确实想要向后删除直到某个特殊字符的功能,但我也希望能够删除整个单词(直到空格)。