This question already has an answer here:
Decorator execution order
(1个答案)
4年前关闭。
我在与装饰器一起玩,想出了以下代码。
我得到如下输出
我真的没收到订单。我读过某个地方,装饰器以相反的顺序被调用,我的意思是第一个应该首先被调用,第二个应该被第二个调用。但输出表明并非如此。
这是怎么回事?
(1个答案)
4年前关闭。
我在与装饰器一起玩,想出了以下代码。
def first(fn):
def wrapper():
print 'Before First'
fn()
return wrapper
def second(fn):
def wrapper():
print 'Before Second'
fn()
return wrapper
@second
@first
def fn():
print 'The Original Function'
fn()
我得到如下输出
Before Second
Before First
The Original Function
我真的没收到订单。我读过某个地方,装饰器以相反的顺序被调用,我的意思是第一个应该首先被调用,第二个应该被第二个调用。但输出表明并非如此。
这是怎么回事?
最佳答案
您从原始功能开始。然后上去。想象一下:second(first(fn))。
在this answer中查看更多
关于python - 装饰器如何链接工作? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34173364/
10-13 00:31