这是我想用缓存增强的函数的框架,因为执行RPC(远程过程调用)需要与其他主机建立TCP连接。
def rpc(rpc_server, rpc_func, arg):
return rpc_server.do_rpc(rpc_func, arg)
然而,最简单的方法是仅用以下方式来装饰它:
@functools.lru_cache()
不起作用,因为rpc_server
对象会不断地出现和消失,而且缓存应该忽略这个参数。
我可以自己编写一个简单的记忆化代码。这没问题。实际上,我没有看到其他解决方法。
我无法以这样的方式重写此函数,即可以应用@lru_cache()
装饰器且将rpc_server
作为参数传递(即,我不想将rpc_server
变成全局变量)。这可能吗?