我今天早些时候遇到过这种技术,但不确定它是如何工作的。我不认为这个例子真的很重要,但我在应用程序中使用Django。在def post_to_endpoint(request, key=None):
if not hasattar(post_to_endpoint, '__my_memo__'):
post_to_endpoint.__my_memo__ = {
"key1": "url" + "path",
"key2": "url2" + "path",
"key3": "url3" + "path",
"key4": "url4" + "path",
}
if key:
url = post_to_endpoint.__my_memo__.get(key, None)
if url:
# make my request here
# return the response
我理解在这个人为的例子中,这可能是一个微观优化。在我的函数中,我会在每次调用时重新创建dict。基本上,我知道这个dict被藏在一个叫做func_dict的东西里,但我真正不明白的是它在请求之间是如何存在的。在
我在PHP背景下的理解是,整个框架在每次请求时都会初始化,但Python/Django/WSGI可能不是这样的?我也不太了解这些是如何与进程/线程一起运行的,也许这些信息在那里是活的?我本以为这样的事情需要在某种持久缓存中完成,但显然情况并非如此。在
另外,在其他地方提到的回忆录也可以通过查字典来实现,但我也不明白这在请求之间是如何存在的。在