import time from functools import wraps #装饰器 def out(func): #闭包函数变量 @wraps(func) #伪装被修饰函数的所有属性 def chag(*args,**kwargs): #装饰部分1 #func=date start=time.time() #装饰部分1 func(*args,**kwargs) #被装饰对象,该值威威变量 stop=time.time() #装饰部分1 print(stop-start) #装饰部分1 return chag #返回内存地址 @out #语法糖处于被装束函数的顶上方 dat=out(date) #将被装饰对象重新命名变量 def date(x,y): """被修饰函数""" time.sleep(6) print('warting...: %s %s' %(x,y)) print(help(date)) print(date) date(2,3) def op(func): def wrp(*args,**kwargs): #1、调用原函数 #2、为其增加新功能 name=input('name id:').strip() pwd=input('pawss id:').strip() if name=='zxt' and pwd =='110': print('yes,doing.....') res=func(*args,**kwargs) return res else: print('again') return wrp @op def info(inter): print(inter) info('sa') def n1(fu):#闭包 def n2(*args,**kwargs): #1、调用原函数,2、添加新功能 ful=fu(*args,**kwargs) return ful #返回内存地址 return n2 #返回内存地址
python 装饰器
最新推荐文章于 2024-08-13 18:29:56 发布