Python 是否有默认的缓存服务
Does Python have a default Caching service
与 redis
和 memcache
类似,Python 是否默认将缓存附加到其 运行 时间环境?
这必须是本地缓存。
我需要知道在不安装或调用任何其他库的情况下,我可以使用系统中现有的 Python 安装来缓存一些数据。
我需要将数据添加到 dict
,但在此之前,如果有任何默认缓存,我需要添加到它。
感谢任何帮助!
取决于您需要做什么。如果你给一个函数一个等同于列表或字典的默认参数并且从不给它一个默认参数,那么函数参数可以充当缓存。这样做的原因是因为 Python 在编译时评估其函数定义,因此函数参数将在编译时加载。以这段代码为例:
def foo(value, arr=[]):
arr.append(value)
return arr
当运行这样时:
for i in range(10):
foo(i)
结果是:
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
与 redis
和 memcache
类似,Python 是否默认将缓存附加到其 运行 时间环境?
这必须是本地缓存。
我需要知道在不安装或调用任何其他库的情况下,我可以使用系统中现有的 Python 安装来缓存一些数据。
我需要将数据添加到 dict
,但在此之前,如果有任何默认缓存,我需要添加到它。
感谢任何帮助!
取决于您需要做什么。如果你给一个函数一个等同于列表或字典的默认参数并且从不给它一个默认参数,那么函数参数可以充当缓存。这样做的原因是因为 Python 在编译时评估其函数定义,因此函数参数将在编译时加载。以这段代码为例:
def foo(value, arr=[]):
arr.append(value)
return arr
当运行这样时:
for i in range(10):
foo(i)
结果是:
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]