Rather than decorators, how about sections?
Paul Morrow
pm_mon at yahoo.com
Wed Aug 11 15:10:22 EDT 2004
Paul McGuire wrote:
> This only addresses the "decoration" for declaring static and class methods.
> The decorator mechanism is intended to include much more than this simple
> class declaration feature. See
> http://www.python.org/cgi-bin/moinmoin/PythonDecoratorLibrary for the first
> application (memoize - a return value cacheing helper/decorator, to optimize
> access to repetitive or compute-intensive function calls, with NO changes
> needed to the function itself). Other decorator candidates I've seen
> mentioned are:
> - mutex lock/unlock wrapper
> - debugging/logging wrapper
> - pre-condition/post-condition assertion wrappers
> - input argument validation/typing wrapper
> - return value type validation wrapper > needed to the function itself).
memoize is an example of something that probably should not be specified
in the method definition. It's strictly a 'pragma' --- just a
suggestion to the compiler on how it could speed up the function. That
kind of 'decoration' (as well as some of the other examples you cited)
is of a 2nd class nature in that it doesn't affect whether the program
produces the correct result or not. Therefore, I would not want to have
such statements comingled with the statements that truly are germane to
the correct functioning of my code. They would only be a distraction,
and are best relegated to some other place in the code-base (another
file perhaps).
That's kindof the thinking behind aspect oriented programming (AOP). A
body of code should deal with only one aspect of the problem...
More information about the Python-list
mailing list