Использование декораторов на лямбдах в Python?

Есть ли какой-либо синтаксис для использования декоратора на лямбда-функции в Python? Пример:

def simpledecorator(f):
     def new_f():
         print "Using a decorator: "
         f()
     return  new_f

@simpledecorator
def hello():
    print "Hello world!"

Результаты этого вывода:

>>> hello()
Using a simple decorator:
Hello world!

Тем не менее, когда я пытаюсь сделать то же самое с лямбдой:

@anotherdecorator
f = lambda x: x * 2

Я получаю это:

  File "<stdin", line 2
    f = lambda x: x * 2
    ^
 SyntaxError: invalid syntax

Я чувствую, что это может быть хорошим способом сделать lambdas более универсальным, позволяя операторам "вводить" в них. Но если существует такая возможность, я не знаю, что такое синтаксис.

Ответы

Ответ 1

f = anotherdecorator(lambda x: x * 2)