Ответ 1
f = anotherdecorator(lambda x: x * 2)
Есть ли какой-либо синтаксис для использования декоратора на лямбда-функции в 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 более универсальным, позволяя операторам "вводить" в них. Но если существует такая возможность, я не знаю, что такое синтаксис.
f = anotherdecorator(lambda x: x * 2)