[Python-Dev] Re: Decorators: vertical bar syntax
Roman Suzi
rnd at onego.ru
Sun Aug 8 12:16:28 CEST 2004
On Sat, 7 Aug 2004, Andrew Koenig wrote:
>> > def foo():
>> > | classmethod
>> > | accepts(int,int)
>> > | returns(float)
>> >
>>
>>
>> Thats it! I love it.
>
>I like the following variation even better:
>
> def foo() |
> classmethod |
> accepts(int, int) |
> returns(float):
>
>Alternatively,
>
> def foo() | classmethod | accepts(int, int) | returns(float):
>
>Yes, I understand that the first of these would require allowing a newline
>after the | without ending the statement. If it were up to me, I would
>allow a newline to follow any operator, but if that's too radical, then
>allowing newlines between the def and the following : would be fine.
I just anted to rewrite those "real-life-looking" examples with my proposed
'%' syntax:
def foo() % (classmethod, accepts(int,int), returns(float),):
or formatted:
def foo() % (
classmethod,
accepts(int,int),
returns(float),):
Or it can be done the this way:
def foo():
...
foo %= (classmethod, accepts(int,int), returns(float),)
The operation could be called "decorative apply", if the LHS
has __call__ attribute. Just a new form of % operation with
special syntax for "def" operator.
Sincerely yours, Roman Suzi
--
rnd at onego.ru =\= My AI powered by GNU/Linux RedHat 7.3
More information about the Python-Dev
mailing list