Python装饰器函数
admin
2023-07-17 22:02:11
0

装饰器函数


这里定义了一个func函数,打印‘我是func函数’

def func():
    print('我是func函数');
        time.sleep(1);

假设,想要在func()函数的基础之上新增的一个功能,计算func函数执行所用的时间

import time;#时间模块,处理时间操作
#开闭原则,对扩展开放,对修改封闭
def func():
    print('我是func函数');
    time.sleep(1);#休眠一秒
#tools方法就是func方法的装饰器
def tool():
    def inner():#利用了高阶函数
        #开始的时间
        starttime=time.time();
        func();#调用函数执行上面的方法
        #结束的时间
        endtime=time.time();
        print('用时:%s秒'%(endtime-starttime));
    return inner;
inner=tool();
inner();

####################调用的方式混乱 以上策略不推荐
#接下来使用装饰器,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。本质上,decorator就是一个返回函数的高阶函数。

def logger(flag):
    #装饰器
    def tool(f):#f:func方法的方法名
        def inner():#利用了高阶函数
            #开始的时间
            starttime=time.time();
            f();#真正的执行方法,调用了func
            #结束的时间
            endtime=time.time();
            print('用时:%s秒'%(endtime-starttime));
            if flag=='true':
                print('你传入了TRUE变量')
        return inner;#内层方法的函数名
    return tool;
#主方法。想要给修饰器传参,在修饰器外重新生成修饰器
@logger('true')
def func():
    print('我是func函数');
    time.sleep(1);#休眠一秒
func();

相关内容

热门资讯

黄仁勋坐过的炸鸡店椅子火了!有... 当地时间6月5日,首尔江南区三成洞,一家炸鸡店靠窗的桌子前总排着队。来的人不全为吃炸鸡,而是想坐一坐...
弘腾自动化取得取放箱子夹具专利... 国家知识产权局信息显示,东莞市弘腾自动化智能科技有限公司取得一项名为“一种取放箱子的夹具”的专利,授...
总书记引领强国之路|加快农业农... 原标题:学习新语·总书记引领强国之路|加快农业农村现代化步伐
医院8亿元工程前6名落选第8名... 针对媒体反映的“湘雅二医院国家紧急医学救援基地建设工程”招标有关问题,湖南省委、省政府高度重视,已成...
吹哨人:特朗普政府曾想“赐死”... 【文/观察者网 阮佳琪】又一个美国“吹哨人”出现了。据《华盛顿邮报》6月5日报道,美国社会保障局(S...
铁路通报男子无票被查辱骂列车员 近日,针对媒体报道“一名男子辱骂列车工作人员”,我段立即开展了核查。具体情况为:2026年6月3日1...
原创 元... 在浩瀚的物质世界中,元素、核素与同位素构成了理解物质结构的三大基石,它们之间既相互关联又各具特色,共...
棕调独尊——狼山石凡戴克棕,凭... 在五彩斑斓的玉石世界里,翡翠的翠绿、和田玉的脂白、南红的朱红、墨玉的漆黑,每一种主流色调都有其忠实拥...
美国海上封锁已使伊朗损失近60... 财联社6月6日电,根据贸易数据分析公司Kpler的数据,伊朗5月的原油和凝析油出口量已降至不足平均每...
应急演练强保障,蔡甸供电精准守... 极目新闻通讯员 胡莉娜 张书烨 “设备温度正常、负荷数据稳定,UPS电源运行无异常,双电源切换试验圆...