因此,假设我有一个装饰器foo(),并将其像这样应用于bar():
@foo
def bar():
pass
我知道有一种方法可以修饰已经定义的函数,如下所示:
foo(bar())
但是如何在不使用语法糖的情况下修饰函数?
答案 0 :(得分:11)
通常是装饰
@foo
def bar():
pass
是以下各项的简写:
def bar():
pass
bar = foo(bar) # note the missing (); do not call bar
装饰器将函数本身作为参数,而不是函数调用的结果。