裝飾器迷思值多個裝飾器執(zhí)行順序

裝飾器是Python用于封裝函數(shù)或代碼的工具,網(wǎng)上可以搜到很多文章可以學(xué)習(xí),我在這里要討論的是多個裝飾器執(zhí)行順序的一個迷思。

疑問

大部分涉及多個裝飾器裝飾的函數(shù)調(diào)用順序時都會說明它們是自上而下的,比如下面這個例子:

def decorator_a(func):
    print 'Get in decorator_a'
    def inner_a(*args, **kwargs):
        print 'Get in inner_a'
        return func(*args, **kwargs)    return inner_adef decorator_b(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_adef f(x):
    print 'Get in f'
    return x * 2f(1)

上面代碼先定義里兩個函數(shù): 

網(wǎng)友評論