python多个装饰器的执行顺序
在Python中,多个装饰器的执行顺序是从下往上执行,但是最终的执行顺序是从上往下执行。具体来说,假设有以下代码:
@decorator_a
@decorator_b
def my_func():
pass
那么实际的执行顺序是这样的:
- 首先执行
decorator_b装饰器,将my_func作为参数传递给它,然后返回一个新的函数对象。 - 接着执行
decorator_a装饰器,将第一步返回的函数对象作为参数传递给它,然后返回另一个新的函数对象。 - 最终,将第二步返回的函数对象赋值给
my_func变量,从而完成装饰器的工作。
因此,实际的执行顺序是从下往上执行,但最终的效果是从上往下执行。
原文地址: https://www.cveoy.top/t/topic/bHAW 著作权归作者所有。请勿转载和采集!