[Python-ideas] Decorators for variables

Stephen J. Turnbull stephen at xemacs.org
Sun Apr 3 05:24:22 EDT 2016


Steven D'Aprano writes:

 > > and this way we can read the decorator next to the function
 > > signature while on a variable, this just add another way to call
 > > a function on a variable.
 > 
 > I'm afraid I don't understand what you mean by this. What does
 > "while on a variable" mean here?

Missing punctuation (see substring in square brackets):

   and this way we can read the decorator next to the function
   signature[.  W]hile on a variable, this just add another way to
   call a function on a variable.

So, it appears that he's proposing pure syntactic sugar with no
semantic change at all.  The syntactic effects are that decorator
syntax separates function calls from the values they act on (-1 on
that), and makes it appear that in Python a function can change the
value of its formal argument (-1 on that, too).

The latter characteristic may need some expansion.  Of course Python
has mutable objects which can be changed "inside" a function and that
effect propagates to "outside" the function.  But in the containing
scope, while the object has mutated, the variable (more precisely, the
name-object binding) has not.

It seems to me that everything he's asked for can be accomplished by
defining a descriptor class and assigning an instance of that class.
I don't yet understand why that isn't good enough, unless it's just a
matter of taste about the sweetness of syntax.




More information about the Python-ideas mailing list