Tornado 中的自定义装饰器

Custom Decorators in Tornado

我在尝试制作自定义龙卷风装饰器时遇到错误。

TypeError: post() missing 1 required positional argument: 'self'

示例代码为:

def decorate( function_name ):
    # Do something
    function_name()
    # Do something

class MainHandler( tornado.web.RequestHandler ):
    @decorate
    def post( self ):
        # Do whatever

如何将 self 的上下文传递给装饰器?

您似乎没有将参数从装饰器传递到装饰方法。

装饰器应如下所示:

def decorate(func):
    def wrapper(*args, **kwargs):
        # pass the received arguments to
        # the decorated function
        return func(*args, **kwargs)
    return wrapper