Python面试:多个装饰器按何种顺序执行?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1626个文字,预计阅读时间需要7分钟。
疑问:装饰器大多涉及多个装饰器装饰的函数调用顺序时,都会说明它们是自上而下的,例如下面的例子:
pythondef decorator_a(func): print('Get in decorator_a')
def inner_a(*args, **kwargs): print('Get in inner_a') return func(*args, **kwargs)
使用示例
分析:
1.装饰器 `decorator_a` 首先被应用,它会在函数 `func` 被调用前执行。
2.接着是 `inner_a`,它同样会在 `func` 被调用前执行。
3.因此,当 `func` 被调用时,首先会执行 `inner_a` 中的打印语句,然后执行 `func`,最后执行 `decorator_a` 中的打印语句。
本文共计1626个文字,预计阅读时间需要7分钟。
疑问:装饰器大多涉及多个装饰器装饰的函数调用顺序时,都会说明它们是自上而下的,例如下面的例子:
pythondef decorator_a(func): print('Get in decorator_a')
def inner_a(*args, **kwargs): print('Get in inner_a') return func(*args, **kwargs)
使用示例
分析:
1.装饰器 `decorator_a` 首先被应用,它会在函数 `func` 被调用前执行。
2.接着是 `inner_a`,它同样会在 `func` 被调用前执行。
3.因此,当 `func` 被调用时,首先会执行 `inner_a` 中的打印语句,然后执行 `func`,最后执行 `decorator_a` 中的打印语句。

