代码之家  ›  专栏  ›  技术社区  ›  Rafe Kettler

如何将decorators应用于lambdas?

  •  19
  • Rafe Kettler  · 技术社区  · 14 年前

    在Python的lambda函数上使用decorator有语法吗?例子:

    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
    

    1 回复  |  直到 6 年前
        1
  •  40
  •   dan04    8 年前
    f = anotherdecorator(lambda x: x * 2)