[Python-ideas] Assignment decorators (Re: The Descriptor Protocol...)

Chris Kaynor ckaynor at zindagigames.com
Tue Mar 8 02:08:46 CET 2011


On Mon, Mar 7, 2011 at 4:56 PM, Larry Hastings <larry at hastings.org> wrote:
>> On 03/03/2011 03:45 PM, Greg Ewing wrote:
>>> I think we should have assignment decorators.
>>>> @decorator
>> lhs = rhs
>>>> would be equivalent to
>>>> lhs = decorator('lhs', rhs)
>>>>> I timidly propose an alternate syntax. What I don't like about the above
> proposal: assignment is no longer a one-liner. So let's try it inline.
>> Example 1:
>> lhs = @decorator
>> is equivalent to
>> lhs = decorator(classobject, 'lhs', None)
>>> Example 2:
>> lhs = @dec1 @dec2
>> is equivalent to
>> lhs = dec2(classobject, 'lhs', dec1(classobject, 'lhs', None))
>>> Example 3:
>> lhs = @dec1('string', 3.14)
>> is equivalent to
>> lhs = dec1('string', 3.14)(classobject, 'lhs', None)
>
You seemed to have missed the example of:
lhs = @dec1 123
which would produce
dec1(classobject, 'lhs', 123)
correct?
If so, the separation between dec1 and 123 seems too little - it looks like
typos like:
lhs = @dec1123
lhs = @dec123
would be easy to make and difficult to detect.
>> (Here you are presumed to return a callable closure with the default values
> baked in.)
>> Outside class scope, classobject is None. I think you want the classobject
> there so you can cache information in it, like using the variable
> declarations to build up a per-class database schema.
>>> I'm not confident any of this is a good idea; luckily this isn't the
> python-good-ideas-only list. Phew!
>>> /larry/
>> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
>-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20110307/3fa6603c/attachment.html>


More information about the Python-ideas mailing list

AltStyle によって変換されたページ (->オリジナル) /