0

私が達成したいのは、次のコードが次のようになることです。

  • ここ1
  • ここ2
  • Here3 argOne argTwo

私の __call__ の使用が何らかの形で functools.wraps を破壊しているのではないかと思っています。また、ある時点で引数が失われているようにも見えます。

私が達成しようとしていることは可能ですか?

from functools import wraps

class Decorator():

    def __init(self, something=None):
            self.something = something

    def __call__(self, func):
            print 'Here1'
            @wraps(func)
            def _wrapper(*args, **kwargs):
                return self.call(func, *args, **kwargs)
            return _wrapper

    def call(self, func, *args, **kwargs):
            print 'Here2'
            retsult = func(*args, **kwargs)
            return result


if __name__ == '__main__':

    decorator = Decorator()

    @decorator
    def do_the_thing(arg1='argOne', arg2='argTwo'):
            print 'Here3 {0} {1}'.format(arg1, arg2)
            return
4

1 に答える 1