成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

python 裝飾器順序

trigkit4 / 1554人閱讀

def logging(level):
    def wrapper(func):
        def inner_wrapper(*args, **kwargs):
            print "[{level}]: enter function {func}()".format(
                level=level,
                func=func.__name__)
            return func(*args, **kwargs)
        return inner_wrapper
    return wrapper

@logging(level="INFO")
def say(something):
    print "say {}!".format(something)

# 如果沒有使用@語法,等同于
# say = logging(level="INFO")(say)

@logging(level="DEBUG")
def do(something):
    print "do {}...".format(something)

if __name__ == "__main__":
    say("hello")
    do("my work")

裝飾器調(diào)用順序

#!/usr/bin/env python
# encoding: utf-8

def decorator_a(func):
    print func
    print "Get in decorator_a"
    def inner_a(*args, **kwargs):
        print "Get in inner_a"
        return func(*args, **kwargs)
    return inner_a

def decorator_b(func):
    print func
    print "Get in decorator_b"
    def inner_b(*args, **kwargs):
        print "Get in inner_b"
        return func(*args, **kwargs)
    return inner_b

@decorator_b
@decorator_a
def f(x):
    print "Get in f"
    return x * 2

f(1)

執(zhí)行結(jié)果


Get in decorator_a

Get in decorator_b
Get in inner_b
Get in inner_a
Get in f

f(1)等價(jià)于decorator_b(decorator_a(f))(1)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/42924.html

相關(guān)文章

  • python 多個(gè)裝飾的調(diào)用順序

    摘要:如果不使用裝飾器的話,普通的做法可能是在中寫一堆校驗(yàn)代碼來判斷用戶是否登錄,然后決定后面的執(zhí)行邏輯,這樣比較麻煩。 前言 裝飾器是程序開發(fā)中經(jīng)常會(huì)用到的一個(gè)功能,也是python語言開發(fā)的基礎(chǔ)知識(shí),如果能夠在程序中合理的使用裝飾器,不僅可以提高開發(fā)效率,而且可以讓寫的代碼看上去顯的高大上^_^ 使用場(chǎng)景 可以用到裝飾器的地方有很多,簡(jiǎn)單的舉例如以下場(chǎng)景 引入日志 函數(shù)執(zhí)行時(shí)間統(tǒng)計(jì) 執(zhí)...

    wapeyang 評(píng)論0 收藏0
  • Python 裝飾執(zhí)行順序迷思

    摘要:探究多個(gè)裝飾器執(zhí)行順序裝飾器是用于封裝函數(shù)或代碼的工具,網(wǎng)上可以搜到很多文章可以學(xué)習(xí),我在這里要討論的是多個(gè)裝飾器執(zhí)行順序的一個(gè)迷思。這時(shí)候你該知道為什么輸出結(jié)果會(huì)是那樣,以及對(duì)裝飾器執(zhí)行順序?qū)嶋H發(fā)生了什么有一定了解了吧。 探究多個(gè)裝飾器執(zhí)行順序 裝飾器是Python用于封裝函數(shù)或代碼的工具,網(wǎng)上可以搜到很多文章可以學(xué)習(xí),我在這里要討論的是多個(gè)裝飾器執(zhí)行順序的一個(gè)迷思。 疑問 大部...

    frolc 評(píng)論0 收藏0
  • Python裝飾-裝飾流程,執(zhí)行順序

    摘要:最近看到一個(gè)關(guān)于的題文章其中的一個(gè)是裝飾器的順序問題就想寫篇博客回顧下裝飾器首先強(qiáng)烈推薦很久之前看的一篇博文翻譯理解中的裝飾器關(guān)于什么是裝飾器看這篇文章就好了這里主要想寫關(guān)于多個(gè)裝飾器的執(zhí)行流程裝飾順序示例代碼初始化初始化輸出結(jié)果初始化初始 最近看到一個(gè)關(guān)于Flask的CTF(RealWorld CTF 2018 web題bookhub)文章其中的一個(gè)trick是裝飾器的順序問題,就想...

    cpupro 評(píng)論0 收藏0
  • python中多個(gè)裝飾的執(zhí)行順序

    今天講一下python中裝飾器的執(zhí)行順序,以兩個(gè)裝飾器為例。 裝飾器代碼如下: def wrapper_out1(func): print(--out11--) def inner1(*args, **kwargs): print(--in11--) ret = func(*args, **kwargs) print(--in12-...

    or0fun 評(píng)論0 收藏0
  • Python - 裝飾decorator

    摘要:在這種代碼運(yùn)行期間動(dòng)態(tài)增加功能的方式,稱之為裝飾器。四接收特定類型參數(shù)的裝飾器裝飾器可以接收參數(shù),當(dāng)調(diào)用裝飾器返回的函數(shù)時(shí),也就調(diào)用了包裹函數(shù),把參數(shù)傳入包裹函數(shù),它將參數(shù)傳遞給被裝飾的函數(shù)。執(zhí)行結(jié)果執(zhí)行結(jié)果 【題外話】心塞塞 心情down down down 有段時(shí)間沒用裝飾器了,然后然后問著就跪了~~~回來翻了翻資料和代碼...... 一、什么是裝飾器 裝飾器,decor...

    HackerShell 評(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

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

0條評(píng)論

閱讀需要支付1元查看
<