[Python-ideas] Problems (and solutions?) in writing decorators

Greg Ewing greg.ewing at canterbury.ac.nz
Thu Oct 25 18:04:17 EDT 2018


Jonathan Fine wrote:
> I also find writing decorators a bit
> hard. It seems to be something I have to learn anew each time I do it.
> Particularly for the pattern
> 
> @deco(arg1, arg2) def fn(arg3, arg4):
 >     # function body
> 
> Perhaps doing something with partial might help here. Anyone here interested
> in exploring this?
> 

I can't think of a way that partial would help. But would
you find it easier if you could do something like this?

     class deco(Decorator):

         def __init__(self, arg1, arg2):
             self.arg1 = arg1
             self.arg2 = arg2

         def invoke(self, func, arg3, arg4):
             # function body

Implementation:

     class Decorator:

         def __call__(self, func):
             self._wrapped_function = func
             return self._wrapper

         def _wrapper(self, *args, **kwds):
             return self.invoke(self._wrapped_function, *args, **kwds)

-- 
Greg


More information about the Python-ideas mailing list