[Python-Dev] Re: PEP 318: Decorators last before colon
Mike Thompson
mike.spam.filter at day8.com.au
Wed Mar 31 18:26:39 EST 2004
Guido van Rossum wrote:
>>This looks ugly to me. I do have top level functions that would use
>>decorators because those functions will be put into a class as
>>classmethods and this class will be put into sys.modules instead of
>>the original module. Replacing
>>
>>def foo(cls):
>> ...
>>foo = classmethod(foo)
>>
>>with
>>
>>if True:
>> [classmethod]
>> def foo(cls):
>> ...
>>
>>doesn't look that attractive to me.
>
>
> You won't have to do that except in interactive mode. How often do
> you type functions that need decorators interactively?
>
Wouldn't a small addition to your syntax make all these (special case)
problems disappear and, perhaps, go some way to making the syntax more
readable (particularly for beginners)::
as: [classmethod]
def func(args)
I'm a relative newbie to Python (12 months but many, many years
elsewhere) which means I'm only qualified to comment on what a newbie
would find confusing and I can assure you an isolated list on a line by
itself or having to read about "if True:" work-arounds, would be
remarkably confusing in a language where so much else happens just the
way you would expect.
If the decorator list is to go first and on the line above, then the
'as:' syntax just looks so right to my newbie eyes and sensibilities.
It even read fairly well for the oft given 'classmethod' and
'staticmethod' use cases.
--
Mike
More information about the Python-Dev
mailing list