Decorators without function
Peter Otten
__peter__ at web.de
Mon Aug 9 07:37:14 EDT 2010
Vedran wrote:
> Hello!
>
> Is it possible to apply a decorator on a block of code, without defining
> a function that decorator is applied to.
You can only decorate functions or classes.
> I have to generate a lot of similar graphs. For that reason I use
> plot_decorator to perform usual figure setup(outfile, legend, x_label,
> y_label and so on), and pylab.plot commands to do the actual plotting.
>
> Current solution:
>
> @plot_decorator(fig_params1)
> def plt():
> pylab.plot(..first graph data...)
> pylab.plot(..second graph data..)
> plt()
>
> Is it possible to apply decorator only to the body of plt (several
> pylab.plot commands) without actually defining this function, because I
> use it only once, right after the definition?
I have a hunch that a contextmanager is a better match for your
requirements, see
http://docs.python.org/library/contextlib.html#contextlib.contextmanager
Peter
More information about the Python-list
mailing list