Python 定义修饰函数而不使用@

Python 定义修饰函数而不使用@,python,Python,假设我有一个decorator foo()并将其应用于bar(),如下所示: @foo def bar(): pass foo(bar()) 我知道有一种方法可以像这样装饰已经定义好的函数: @foo def bar(): pass foo(bar()) 但是如何在没有语法糖的情况下修饰函数呢?一般来说,修饰 @foo def bar(): pass 是以下内容的简写: def bar(): pass bar = foo(bar) # note th

假设我有一个decorator foo()并将其应用于bar(),如下所示:

@foo
def bar():
    pass
foo(bar())
我知道有一种方法可以像这样装饰已经定义好的函数:

@foo
def bar():
    pass
foo(bar())

但是如何在没有语法糖的情况下修饰函数呢?

一般来说,修饰

@foo
def bar():
    pass
是以下内容的简写:

def bar():
    pass

bar = foo(bar)  # note the missing (); do not call bar

装饰器将函数本身作为参数,而不是函数调用的结果。

bar=foo(bar)
谢谢,这就是我一直在寻找的。我可以再问你们一个问题吗?若bar是用参数定义的呢?那怎么装饰呢?另外,我可以在8分钟内接受您的答案。@designer完全相同,无论参数如何。
foo
的实现必须处理参数
foo
将(在大多数情况下)返回一个函数,该函数可以处理与
bar
-