小练习15
''' 1.请实现一个装饰器,限制该函数被调用的频率,如10秒一次(面试题) import time l1=[] def wrapper(f): def inner(*args, **kwargs): # 第5步 a=time.time() l1.append(a) if len(l1)==1: ret = f(*args,**kwargs)#第7步 return ret elif l1[-1]-l1[-2]>10: ret = f(*args, **kwargs) # 第7步 return ret else: print('调用频率过大') return inner # 第3步 @wrapper # zz=weapper(zz) 第一步 def zz(): # 第4步 此时zz 为 inner print('我被调用了') zz() time.sleep(11) zz() 2.请写出下列代码片段的输出结果: def say_hi(func): def wrapper(*args,**kwargs): print("HI") ret=func(*args,**kwargs) print("BYE") return ret return wrapper def say_yo(func): def wrapper(*args,**kwargs): print("Yo") return