成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python 裝飾器 part1

meislzhua / 1150人閱讀

摘要:裝飾器早就應(yīng)該掌握的技能。。。。裝飾器本質(zhì)是函數(shù),用來裝飾其他的函數(shù),給他們附加功能。

python 裝飾器
早就應(yīng)該掌握的技能。。。。

裝飾器:本質(zhì)是函數(shù),用來裝飾其他的函數(shù),給他們附加功能。

實(shí)現(xiàn)裝飾器要素

函數(shù)既‘變量’,以操作變量的形式操作函數(shù);

高階函數(shù)和嵌套函數(shù)的使用;

函數(shù)既‘變量’

代碼舉例

import time
def func(f):
    """
    將函數(shù)以變量的形式傳遞進(jìn)來
    """
    start = time.time()
    f()
    end = time.time()
    print("函數(shù)f(也就是test)的運(yùn)行時(shí)間是:{}".format(end-start))
    print("in func....")
    return f
    
def test():
    time.sleep(2)
    print("in test.....")
    
val = func(test) # val == test
val() # test()
# 以上實(shí)現(xiàn)了一個(gè)特別native的裝飾器功能,
# 在func內(nèi)部可以增加其他功能(例如計(jì)算函數(shù)運(yùn)行時(shí)間),最后return f
嵌套函數(shù)

進(jìn)一步改進(jìn)

import time
def decorator(func):
    def process():
        start = time.time()
        func()
        end = time.time()
        print("函數(shù)func(也就是被裝飾的函數(shù))的運(yùn)行時(shí)間是:{}".format(end-start))
    return process
    
def decorated():
    time.sleep()
    print("decorated function")
    
decorated = decorator(decorated) # decorated = return 來的process
decorated() # 也就是調(diào)用process

最終版

import time
def decorator(func):
    def process():
        start = time.time()
        func()
        end = time.time()
        print("函數(shù)func(也就是被裝飾的函數(shù))的運(yùn)行時(shí)間是:{}".format(end-start))
    return process

@decorator # python 裝飾器的正確使用    
def decorated():
    time.sleep()
    print("decorated function")

# 此時(shí)不用再像上面一樣賦值,可以直接調(diào)用
decorated()    

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43065.html

相關(guān)文章

  • [譯]如何使用Flask開發(fā)一個(gè)增刪改查的應(yīng)用

    摘要:教程譯文首發(fā)自我的博客我們將創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)庫驅(qū)動(dòng)的筆記本應(yīng)用。本教程面向想學(xué)習(xí)如何使用開發(fā)網(wǎng)站或者應(yīng)用的初學(xué)者。在剛創(chuàng)建的文件中,創(chuàng)建一個(gè)名為的文件?,F(xiàn)在,我們將創(chuàng)建一個(gè)函數(shù),并且使用裝飾器將它綁定到一個(gè)上。 showImg(https://segmentfault.com/img/remote/1460000006765797); 教程譯文首發(fā)自我的博客:Defshines Bl...

    tianlai 評(píng)論0 收藏0
  • Python】一文弄懂python裝飾(附源碼例子)

    摘要:裝飾器的使用符合了面向?qū)ο缶幊痰拈_放封閉原則。三簡(jiǎn)單的裝飾器基于上面的函數(shù)執(zhí)行時(shí)間的需求,我們就手寫一個(gè)簡(jiǎn)單的裝飾器進(jìn)行實(shí)現(xiàn)。函數(shù)體就是要實(shí)現(xiàn)裝飾器的內(nèi)容。類裝飾器的實(shí)現(xiàn)是調(diào)用了類里面的函數(shù)。類裝飾器的寫法比我們裝飾器函數(shù)的寫法更加簡(jiǎn)單。 目錄 前言 一、什么是裝飾器 二、為什么要用裝飾器 ...

    liuchengxu 評(píng)論0 收藏0
  • Python裝飾vs裝飾模式

    摘要:希望引以為戒鄭傳裝飾模式如果你了解,你肯定聽過裝飾器模式。在面向?qū)ο笾校b飾模式指動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加一些功能來說,裝飾模式比生成子類更為靈活。 漫談 如果作為一個(gè)Python入門,不了解Python裝飾器也沒什么,但是如果作為一個(gè)中級(jí)Python開發(fā)人員,如果再不對(duì)python裝飾器熟稔于心的話,那么可能并沒有量變積累到質(zhì)變。 我以前也看過很多講python 裝...

    stackvoid 評(píng)論0 收藏0
  • Python: 會(huì)打扮的裝飾

    摘要:一般情況下,我們使用裝飾器提供的語法糖,來簡(jiǎn)化上面的寫法像上面的情況,可以動(dòng)態(tài)修改函數(shù)或類功能的函數(shù)就是裝飾器。本文標(biāo)題為會(huì)打扮的裝飾器本文鏈接為參考資料修飾器的函數(shù)式編程中的裝飾器介紹思誠(chéng)之道裝飾器入門與提高賴明星 裝飾器 我們知道,在 Python 中,我們可以像使用變量一樣使用函數(shù): 函數(shù)可以被賦值給其他變量 函數(shù)可以被刪除 可以在函數(shù)里面再定義函數(shù) 函數(shù)可以作為參數(shù)傳遞給另外...

    blastz 評(píng)論0 收藏0
  • Python裝飾

    摘要:一引用書流暢的書二基本概念問題裝飾器是什么解答嚴(yán)格來說,裝飾器只是語法糖,裝飾器是可調(diào)用的對(duì)象,可以像常規(guī)的可調(diào)用對(duì)象那樣調(diào)用,特殊的地方是裝飾器的參數(shù)是一個(gè)函數(shù)問題裝飾器有什么特性解答裝飾器有個(gè)特性,一是可以把被裝飾的函數(shù)替換成其他函數(shù), 一, 引用 [書] 流暢的Python [書] Effective Python 二, 基本概念 showImg(https://segme...

    aisuhua 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<