confusion with decorators
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Thu Jan 31 16:31:13 EST 2013
Steven D'Aprano wrote:
>> def _protector_decorator(fcn):
>> def newfcn(self, *args, **kwargs):
>> return fcn(self, *args, **kwargs)
>> return newfcn
>
> Well, that surely isn't going to work, because it always decorates the
> same function, the global "fcn".
Good grief, I can't believe I failed to see that fcn was declared as a
parameter to _protector_decorator.
> You probably want to add an extra parameter to the newfcn definition:
>
> def newfcn(self, fcn, *args, **kwargs):
And that's also rubbish. The right place for the fcn parameter is the
decorator function itself, exactly where it already is.
Whatever crack I was smoking yesterday, it must have been pretty awful
stuff.
--
Steven
More information about the Python-list
mailing list