[Python-3000] Assignment decorators

Brett Cannon brett at python.org
Fri Dec 8 20:58:38 CET 2006


On 12/8/06, Talin <talin at acm.org> wrote:
>
> One other minor brainstorm before I head off to work: I'd like function
> decorators to work with assignment statements as well as 'def' statements.
>
> Use case:
>
>     class Foo:
>
>        @private
>        def myfunc():
>           pass
>
>        @private
>        selected = True
>
> Rationale: The 'def' statement is a type of assignment statement, in
> that it assigns a value (a function object) to a symbol. For
> consistency, the same mechanic ought to be available to other kinds of
> assignment.


That just seems ugly.  Decorators are fine for functions, methods (and
eventually classes) because they only appear in one place.  But having them
strewn about within a function body just seems messy to me.::

 def fxn():
    @decorator
    a = b
    @decorator
    c = d
    @decorator
    e = f

Contrived, I know, but that just hurts my eyes.  Plus if you want to change
the value of something before it is assigned then pass the value to be
assigned to a function.  Decorators provide the ability to pre-process
objects that one could not normally touch before assignment.  You don't have
this issue with assignment statements in a function and thus you are not
solving a problem here that decorators were designed for.

-Brett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-3000/attachments/20061208/b101ff08/attachment.htm 


More information about the Python-3000 mailing list