python装饰器

it2022-05-05  202

一、装饰器装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面每个函数都加一个功能,用来统计每个函数的运行时间是多少,找出来运行比较慢的函数,来优化代码,就需要添加一个新的功能,来统计程序的运行时间,那这样的话,就得修改每个函数了,需要改代码,但是代码特别多,改完了公司倒闭了,这时候装饰器就能排上用场了,它可以不改变原有的函数,原来的函数和原来一模一样,什么都不需要改变,只需要在函数外部加上调用哪个装饰器就可以了。so,装饰器的作用就是不改变原来函数的调用方式,不改变原来函数的代码,给它增加了一个新功能。但是不改变函数,给它增加新功能,那是不可能的,装饰器只不过是偷偷改变了原来的函数而已,而原来的函数不知不觉。

import time,os,sysdef timer(func): def deco(*args,**kwargs): #*args,**kwargs用来接收传入函数的参数 start_time = time.time() res = func(*args,**kwargs)#获取返回值 end_time = time.time() print('runtime',end_time-start_time) return res return deco @timerdef run(name): print(name) time.sleep(0.5)run('nihao') #上面这个函数功能,就是使用装饰器,给run函数添加统计行数运行时间的功能#上面这个函数其实就是返回了一个函数名而已#1、调用timer函数的时候,要传入一个方法名,# timer函数在函数内部定义了一个函数叫做deco#又在函数deco内部调用了timer里面传入的方法#run保存的是deco,deco是一个函数,调用run就是调用deco

转载于:https://www.cnblogs.com/lazy-cat-home/p/7019107.html

相关资源:各显卡算力对照表!

最新回复(0)