Rafe Kettler Rafe Kettler - 10 months ago 32
Python Question

Using decorators on lambdas in Python?

Is there any syntax for using a decorator on a lambda function in Python? Example:

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

def hello():
print "Hello world!"

Results in this output:

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

Yet when I try the same with a lambda:

f = lambda x: x * 2

I get this:

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

I feel like this might be a good way to make lambdas more versatile by allowing statements to be "injected" into them. But if there exists such a feature, I don't know what the syntax is.

f = anotherdecorator(lambda x: x * 2)