Python装饰器函数

装饰器函数


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

创新互联主营和田网站建设的网络公司,主营网站建设方案,app软件开发公司,和田h5小程序设计搭建,和田网站营销推广欢迎和田等地区企业咨询

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();

当前题目:Python装饰器函数
当前URL:http://hxwzsj.com/article/psgiej.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 重庆企业网站建设 成都商城网站建设 手机网站制作设计 成都网站设计公司 定制网站建设多少钱 响应式网站建设 成都网站设计 成都网站建设 企业网站建设公司 成都网站设计 网站建设公司 网站制作公司 成都网站制作 网站设计 网站建设方案 成都网站建设公司 营销型网站建设 成都品牌网站设计 成都模版网站建设 移动网站建设 响应式网站设计方案 品牌网站建设