题目:
实现一个cache装饰器,实现可过期,可清除的功能,可以不换出(模仿lru_cache)
-
思路:
-
cache缓存装饰器,是有key值的---------->可得到用字典类型
-
过期指的是key值过期,过期是一定时间,可以用时间戳来做对比
-
最重要的是key值的生成,且key一定是可hash的,key可以接受位置参数,关键字参数,缺省参数
-
而位置参数解构之后是tuple
-
关键字参数解构得到dict类型,而字典是无序的。传参的顺序不一定是字典中保存的顺序
-
故而得到key之后要排序下。
-
-
-
1.先把基础功能写下来
-
先把装饰器结构写出来
-
def pr_cache(fn):
def warpper(*args,**kwargs):
ret = fn(*args,**kwargs)
return ret
return warpper -
先写key的构造
-
inspect模块的signature函数,可以获取函数的所有参数
-
default
-
获得函数的关键字参数的值
-
import inspect import functools def p
-
-