真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python裝飾器函數(shù)

裝飾器函數(shù)


這里定義了一個func函數(shù),打印‘我是func函數(shù)’

創(chuàng)新互聯(lián)主營和田網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,和田h5小程序設(shè)計搭建,和田網(wǎng)站營銷推廣歡迎和田等地區(qū)企業(yè)咨詢

def func():
    print('我是func函數(shù)');
        time.sleep(1);

假設(shè),想要在func()函數(shù)的基礎(chǔ)之上新增的一個功能,計算func函數(shù)執(zhí)行所用的時間

import time;#時間模塊,處理時間操作
#開閉原則,對擴展開放,對修改封閉
def func():
    print('我是func函數(shù)');
    time.sleep(1);#休眠一秒
#tools方法就是func方法的裝飾器
def tool():
    def inner():#利用了高階函數(shù)
        #開始的時間
        starttime=time.time();
        func();#調(diào)用函數(shù)執(zhí)行上面的方法
        #結(jié)束的時間
        endtime=time.time();
        print('用時:%s秒'%(endtime-starttime));
    return inner;
inner=tool();
inner();

####################調(diào)用的方式混亂 以上策略不推薦
#接下來使用裝飾器,這種在代碼運行期間動態(tài)增加功能的方式,稱之為“裝飾器”(Decorator)。本質(zhì)上,decorator就是一個返回函數(shù)的高階函數(shù)。

def logger(flag):
    #裝飾器
    def tool(f):#f:func方法的方法名
        def inner():#利用了高階函數(shù)
            #開始的時間
            starttime=time.time();
            f();#真正的執(zhí)行方法,調(diào)用了func
            #結(jié)束的時間
            endtime=time.time();
            print('用時:%s秒'%(endtime-starttime));
            if flag=='true':
                print('你傳入了TRUE變量')
        return inner;#內(nèi)層方法的函數(shù)名
    return tool;
#主方法。想要給修飾器傳參,在修飾器外重新生成修飾器
@logger('true')
def func():
    print('我是func函數(shù)');
    time.sleep(1);#休眠一秒
func();

網(wǎng)頁標(biāo)題:Python裝飾器函數(shù)
轉(zhuǎn)載源于:http://weahome.cn/article/psgiej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部