explained example ejemplo decorators decoradores python syntax lambda decorator

python - example - ¿Cómo aplicar decoradores a las lambdas?



python decoradores (1)

¿Hay alguna sintaxis para usar un decorador en una función lambda en Python? Ejemplo:

def simpledecorator(f): def new_f(): print "Using a decorator: " f() return new_f @simpledecorator def hello(): print "Hello world!"

Resultados en esta salida:

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

Sin embargo, cuando intento lo mismo con un lambda:

@anotherdecorator f = lambda x: x * 2

Entiendo esto:

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

Siento que esta podría ser una buena manera de hacer que las lambdas sean más versátiles permitiendo que las declaraciones se "inyecten" en ellas. Pero si existe tal característica, no sé cuál es la sintaxis.


f = anotherdecorator(lambda x: x * 2)