python decorators, nested function

This question already has an answer here:

  • How to make a chain of function decorators? 15 answers

  • Why second sample does not works?

    Because you are calling the function on the return, you are not returning a function.

  • Why args,kwargs are "magically" appears if we are using a nested function?

    They don't appear magically, we are declaring them, as in:

    def deco(*args, **kwargs):
    

    These are generic, and will match any function signature (argument list). You don't have to call them args and kwargs , that's just a convention, you could call them sharon and tracy .

  • What can i do, to make 2nd sample work? Except nesting another function, ofcourse.

    Well you don't say what you expect the 2nd sample to do. But I guess to turn it into a decorator then:

    def func(f):
        return f
    

    But that's not doing a lot!

  • By the way, it is usually a bad idea to override an existing Python builtin ( sum ) - you have to have a very good reason for that.

    链接地址: http://www.djcxy.com/p/23804.html

    上一篇: “@”装饰器(在Python中)

    下一篇: Python装饰器,嵌套函数