PEP 318: Can't we all just get along?
djw
dwelch91 at comcast.net
Wed Aug 18 13:21:27 EDT 2004
Bruno Desthuilliers wrote:
> Kevin Smith wrote:
>
>> For what it's worth, I wrote the original PEP 318. I probably wasn't
>> qualified, but I just wanted a nice simple way to declare class
>> methods without having to repeat the function name. After submitting
>> it to BDFL for approval, more work was needed and the discussion of
>> PEP 318 on python-dev increased rapidly. It was evident that I was in
>> over my head, so I asked more someone more experienced to take over.
>> I guess others had bigger plans for my proposal that I had planned.
>> It has turned into the "solution" to many problems: type checking
>> (both arguments and returned values), metaclasses, metadata,
>> interfaces, function attributes, etc.). Unfortunately, in the
>> process, this simple request for syntactical sugar has turned into a
>> monstrosity. In my opinion, none of the proposed syntaxes really seem
>> Pythonic. This PEP just seems to be trying to solve too many problems.
>>
>> Bear with me, but I'd like to propose one more syntax that is simple,
>> easy for newbies to understand, and nowhere near as powerful as the
>> current PEP's syntax. However, it doesn't add incoherent, arbitrary
>> syntax either.
>>
>> def classmethod foo(x, y, z):
>> pass
>>
>> That's it. One "decorator" that is a callable object that takes a
>> method as it's only argument. No expressions, lists, tuples, etc.
>> Just one callable object.
>
>
> +2 for me.
>
>
>> Ok, if you absolutely must have more than one.
>
> > def classmethod synchronized foo(x, y, z):
> > pass
>
> No. If you want more than one, provide your own decorator, ie :
>
> def synchronizedClassmethod(method):
> return synchronized(classmethod(method))
>
> def synchronizedClassmethod foo(x, y, z):
> pass
>
> My 2 eurocents
> Bruno
>
+10
More information about the Python-list
mailing list