函数的有用信息,装饰器 day12
Posted 虫洞小鳗鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的有用信息,装饰器 day12相关的知识,希望对你有一定的参考价值。
一 函数的有用信息
本函数的功能:绘图功能,实时接收数据并绘图.
:return: 绘图需要的数据,返回给前端某标签
def f1(): \'\'\' 本函数的功能:绘图功能,实时接收数据并绘图. :return: 绘图需要的数据,返回给前端某标签 \'\'\' print(f1.__doc__) print(f1.__name__) print(666) print(f1.__doc__) #获取函数的说明信息 print(f1.__name__) # 获取函数的名字 f1()
from functools import wraps def wrapper(func): @wraps(func) def inner(*args,**kwargs): \'\'\'执行函数前进行的操作\'\'\' ret = func(*args,**kwargs) \'\'\'执行函数后进行的操作\'\'\' return ret return inner @wrapper def f1(): \'\'\' 本函数的功能:绘图功能,实时接收数据并绘图. :return: 绘图需要的数据,返回给前端某标签 \'\'\' print(f1.__doc__) print(f1.__name__) f1()
def wrapper(func): def inner(*args,**kwargs): \'\'\'执行函数前进行的操作\'\'\' ret = func(*args,**kwargs) \'\'\'执行函数后进行的操作\'\'\' return ret return inner @wrapper # f1 = wrapper(f1) def f1(a,b,c,d): # 接收函数的时候,* 聚合. print(a,b) # print(args) # (1,2,3,4) f1(1,2,2,3) f1(*[1,2,3,4]) # 执行函数时,加个*打散
二 带参数的装饰器
import time flag = False def timmer_out(f): def timmer(func): def inner(*args,**kwargs): \'\'\'执行函数前操作\'\'\' if f: start_time = time.time() time.sleep(0.3) ret = func(*args,**kwargs) \'\'\'执行函数后操作\'\'\' end_time = time.time() print(\'执行效率%s\'%(end_time - start_time)) return ret else: ret = func(*args,**kwargs) return ret return inner return timmer @timmer_out(flag) # 1, timmer_out(flag) 返回 timmer ---> def f1(): # 2, @timmer 就是你认识的装饰器 f1 = timmer(f1) print(666) @timmer_out(flag) # f2 = timmer(f2) def f2(): print(777) f1() f2()
def wrapper1(func): # func = f def inner1(): print(\'wrapper1 ,before func\') func() print(\'wrapper1 ,after func\') return inner1 def wrapper2(func): # func = inner1 def inner2(): print(\'wrapper2 ,before func\') func() print(\'wrapper2 ,after func\') return inner2 @wrapper2 # f = wrapper2(f) 里面的f == inner1 外面的f = inner2 @wrapper1 # f = wrapper1(f) 返回inner1 f = inner1 def f(): print(\'in f\') f() # inner2()
def wrapper1(func): # func = f def inner1(): print(\'wrapper1 ,before func\') func() print(\'wrapper1 ,after func\') return inner1 def wrapper2(func): # func = inner1 def inner2(): print(\'wrapper2 ,before func\') func() print(\'wrapper2 ,after func\') return inner2 @wrapper2 # f = wrapper2(f) 里面的f == inner1 外面的f = inner2 @wrapper1 # f = wrapper1(f) 返回inner1 f = inner1 def f(): print(\'in f\') f() # inner2()
以上是关于函数的有用信息,装饰器 day12的主要内容,如果未能解决你的问题,请参考以下文章
Python全栈__函数的有用信息带参数的装饰器多个装饰器装饰一个函数