将functools.cache
包装在另一个装饰器中可以通过以下步骤实现:
functools
模块:import functools
def my_decorator(func):
def wrapper(*args, **kwargs):
wrapper
函数内部,使用functools.cache
装饰被装饰的函数:cached_func = functools.cache(func)
wrapper
函数内部,调用cached_func
并返回结果:return cached_func(*args, **kwargs)
return wrapper
完整的代码示例如下:
import functools
def my_decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
cached_func = functools.cache(func)
return cached_func(*args, **kwargs)
return wrapper
这样,你就可以使用my_decorator
装饰器将functools.cache
包装在另一个装饰器中了。只需将需要缓存的函数用@my_decorator
装饰即可。
注意:这里使用了functools.wraps
装饰器来保留被装饰函数的元数据,以便在使用help()
等函数时能够正确显示被装饰函数的信息。
领取专属 10元无门槛券
手把手带您无忧上云