相关疑难解决方法(0)

装饰员执行顺序

def make_bold(fn):
    return lambda : "<b>" + fn() + "</b>"

def make_italic(fn):
    return lambda : "<i>" + fn() + "</i>"

@make_bold
@make_italic
def hello():
  return "hello world"

helloHTML = hello()
Run Code Online (Sandbox Code Playgroud)

输出: "<b><i>hello world</i></b>"

我大致了解装饰器以及它在大多数示例中如何与其中一个一起工作.

在这个例子中,有2个.从输出,它似乎@make_italic首先执行,然后@make_bold.

这是否意味着对于装饰函数,它将首先运行函数然后移动到其他装饰器的顶部?就像@make_italic第一个@make_bold,而不是相反.

那么这意味着它与大多数编程中的自上而下方法的规范不同?只为这个装饰器的情况?还是我错了?

python decorator python-decorators

72
推荐指数
2
解决办法
2万
查看次数

标签 统计

decorator ×1

python ×1

python-decorators ×1