私が達成したいのは、次のコードが次のようになることです。
- ここ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