代码之家  ›  专栏  ›  技术社区  ›  Meghdeep Ray

龙卷风中的定制装饰师

  •  0
  • Meghdeep Ray  · 技术社区  · 8 年前

    我正面临一个错误,而试图做一个自定义龙卷风装饰。

    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 给装潢师?

    1 回复  |  直到 8 年前
        1
  •  2
  •   xyres    8 年前

    似乎您没有将参数从decorator传递给decorated方法。

    你的装潢师应该是这样的:

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